首页 > 解决方案 > 每次我刷新 expo 客户端时,SecureStore 都会删除我的令牌

问题描述

在 expo 客户端中开发我的应用程序时,我从 SecureStore 检索我的身份验证令牌时遇到问题。

我正在尝试使用secureStore而不是异步存储从反应导航中实现此身份验证流程:https ://reactnavigation.org/docs/en/4.x/auth-flow.html

目前,当我登录时,我的令牌存储在 SecureStore 中。我知道这一点,因为我可以使用它来授权我的请求。

我的问题是当我正在开发我的应用程序的博览会客户端刷新时,令牌似乎消失了,所以我必须再次登录。

世博会客户端应用程序刷新是否从安全商店清除令牌,或者我的代码中是否存在阻止我在再次打开我的应用程序时检索令牌的错误:

useEffect(() => {
_bootstrapAsync = async () => {
  const token = await SecureStore.getItemAsync('token')
  navigation.navigate(token ? 'App' : 'Auth');

};
_bootstrapAsync();

}, [])

标签: javascriptreact-nativeauthenticationexpo

解决方案


尝试在两者周围包装一个 try-catch 块getItemAsyncsetItemAsync然后看看你是否收到任何错误作为开始。

您也有可能使用旧的导入语法,请确保您使用的是import * as SecureStore from "expo-secure-store",这将导致错误,undefined is not an object因此数据从未保存。


推荐阅读