我正在构建一个Reaction Native应用程序,我需要保存一些敏感数据,如令牌和刷新令牌.显而易见的解决方案是使用AsyncStorage保存该信息.问题出在AsyncStorage的安全级别.
AsyncStorage提供了一种在本地存储令牌和数据的方法.它可以 在某些方面,与LocalStorage选项相比.全部 生产应用程序,建议不要访问AsyncStorage 直接使用抽象层,而不是像AsyncStorage那样使用抽象层 与使用同一浏览器的其他应用程序共享,因此 未经深思熟虑地将所有物品从仓库中移走可能会损害 相邻应用程序的功能.
https://auth0.com/blog/adding-authentication-to-react-native-using-jwt/
在原生应用程序中,我会在iOS
中 Select Keychain
,在Android
中 Select Shared Preferences
,在private mode中 Select Shared Preferences
.
我在React Native提供的文档中读到:
在IOS上,AsyncStorage由存储小值的本机代码支持 在序列化的字典中,而在单独的文件中使用更大的值.在……上面 Android、AsyncStorage将基于什么使用RocksDB或SQLite 是有空的.
https://facebook.github.io/react-native/docs/asyncstorage.html
他们从不谈论这些数据的安全性.
最好的解决方案是为Android
(private mode中使用Shared Preferences
)创建一个模块,并为iOS
(使用Keychain)创建另一个模块来保存敏感数据?或者使用所提供的AsyncStorage
种方法是安全的?