最佳答案
我正在构建一个 React Nativeapplication,需要保存一些敏感数据,比如令牌和刷新令牌。显而易见的解决方案是使用 异步存储保存该信息。问题在于 AsyncStorage 的安全级别。
AsyncStorage 提供了一种本地存储令牌和数据的方法 在某些方面,可以与 LocalStorage 选项相比较 生产应用程序时,建议不要访问 AsyncStorage 而是直接使用一个抽象层,就像异步存储一样 与使用同一浏览器的其他应用程序共享,因此 考虑不周地将所有物品从储存中移走,可能会损害 邻近应用程序的功能。
Https://auth0.com/blog/adding-authentication-to-react-native-using-jwt/
在本地应用程序中,我会选择 iOS
中的 Keychain
和 Android
中的 私人模式中的 Shared Preferences
。
对于我在 React Natural 提供的文档中读到的内容:
在 iOS 上,AsyncStorage 由存储小值的本机代码支持 在一个序列化的字典和较大的值在单独的文件 基于什么,AsyncStorage 将使用 RocksDB 或 SQLite 是可用的。
Https://facebook.github.io/react-native/docs/asyncstorage.html
他们从不谈论数据的安全性。
最好的解决方案是为 Android
(在 私人模式中使用 Shared Preferences
)创建一个模块,为 iOS
(使用 钥匙链)创建另一个模块来保存有意义的数据?或者使用提供的 AsyncStorage
方法是安全的?