Expo 的 SecureStorage 和 redux-saga 的加密/解密问题

问题描述 投票:0回答:1

我正在制作一个带有支持令牌的登录模块的 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 那就太好了。

react-native expo redux-saga
1个回答
0
投票

尝试清除之前设置的 SecureStore 中的所有数据。这对我有用。

卸载并重新安装 Expo GO 后,我遇到了同样的问题。为了解决这个问题,我清除了SecureStore中的所有数据并重新分配它们。它起作用了:)

© www.soinside.com 2019 - 2024. All rights reserved.