我正在制作一个带有支持令牌的登录模块的 React Native 应用程序,因此用户不必每次都登录。
问题是我有时会遇到错误:
Error: Could not encrypt/decrypt the item in SecureStore
at createErrorFromErrorData (NativeModules.js:146)
at NativeModules.js:95
at MessageQueue.__invokeCallback (MessageQueue.js:397)
at MessageQueue.js:127
at MessageQueue.__guard (MessageQueue.js:297)
at MessageQueue.invokeCallbackAndReturnFlushedQueue (MessageQueue.js:126)
错误只是随机发生的,所以我不知道如何找出问题所在,也不知道如何调试问题。
我所做的就是检查令牌是否已存储:
let userToken = yield call(SecureStore.getItemAsync, "userToken");
并保存从服务器收到的令牌(如果还没有):
yield call(SecureStore.setItemAsync, "userToken", token);
我还没有找到与此相关的其他问题,除了 GitHub 问题 已经存在一年多了,没有适当的解决方案。
有人遇到过同样的问题并找出原因吗?
更新:
我在移动设备上工作没有任何问题,但如果能够在模拟器上使用 SecureStore 那就太好了。
尝试清除之前设置的 SecureStore 中的所有数据。这对我有用。
卸载并重新安装 Expo GO 后,我遇到了同样的问题。为了解决这个问题,我清除了SecureStore中的所有数据并重新分配它们。它起作用了:)