Fez*_*sta 7 google-signin expo
我正在使用 Supabase 实现对我的 Expo 应用程序的 Google 登录,我将其设置为将令牌存储在 expo-secure-store 上,但是当我登录时,我收到以下警告:
向 SecureStore 提供的值大于 2048 字节。尝试存储此类值将在 SDK 35 中引发错误。
我正在使用 Expo 48。我尝试存储的令牌如下(已编辑):
{"access_token":"<REDACTED>","token_type":"<REDACTED>","expires_in":<REDACTED>,"refresh_token":"<REDACTED>","user":{"id":"<REDACTED>","aud":"<REDACTED>","role":"<REDACTED>","email":"<REDACTED>","email_confirmed_at":"<REDACTED>","phone":"<REDACTED>","confirmed_at":"<REDACTED>","last_sign_in_at":"<REDACTED>","app_metadata":{"provider":"<REDACTED>","providers":["<REDACTED>"]},"user_metadata":{"avatar_url":"<REDACTED>","email":"<REDACTED>","email_verified":<REDACTED>,"full_name":"<REDACTED>","iss":"<REDACTED>","name":"<REDACTED>","picture":"<REDACTED>","provider_id":"<REDACTED>","sub":"<REDACTED>"},"identities":[{"id":"<REDACTED>","user_id":"<REDACTED>","identity_data":{"avatar_url":"<REDACTED>","email":"<REDACTED>","email_verified":<REDACTED>,"full_name":"<REDACTED>","iss":"<REDACTED>","name":"<REDACTED>","picture":"<REDACTED>","provider_id":"<REDACTED>","sub":"<REDACTED>"},"provider":"<REDACTED>","last_sign_in_at":"<REDACTED>","created_at":"<REDACTED>","updated_at":"<REDACTED>"}],"created_at":"<REDACTED>","updated_at":"<REDACTED>"},"expires_at":<REDACTED>}
Run Code Online (Sandbox Code Playgroud)
我想我不是第一个尝试通过 Expo 实现 Google 登录的人,所以我想知道这个问题的普遍接受的解决方案是什么?
也许不是理想的答案,但我最终从 supabase 返回的会话对象中删除了不太敏感的用户元数据:
function removeUserMetaData(itemValue: string) {
let parsedItemValue = JSON.parse(itemValue);
// Remove properties from the object
if (parsedItemValue) {
delete parsedItemValue.user?.identities;
delete parsedItemValue.user?.user_metadata;
}
// Convert the modified object back to a JSON string
return JSON.stringify(parsedItemValue);
}
const ExpoSecureStoreAdapter = {
getItem: async (key: string) => {
return SecureStore.getItemAsync(key);
},
setItem: (key: string, value: string) => {
SecureStore.setItemAsync(key, removeUserMetaData(value));
},
removeItem: (key: string) => {
SecureStore.deleteItemAsync(key);
},
};
Run Code Online (Sandbox Code Playgroud)
并将用户元数据存储在单独的非安全存储中。
| 归档时间: |
|
| 查看次数: |
1282 次 |
| 最近记录: |