我看到了几个问题,询问"如何存储敏感的数据en react native"(如这样)(例如,来自服务器),然后使用AsyncStorage
存储它。但是,如果您需要在代码中编写敏感令牌/密码呢?
例如,我想实现此库:https://github.com/fullstackreact/reeact-native-oauth如您在第一个示例中所看到的,我必须在代码中写下秘密令牌。
在所有React-Native项目目录中是否都有一个文件,我可以将令牌放入应用程序中?在应用程序中操纵这些安全令牌有多少安全?
谢谢
如何将敏感数据存储在React Native Code中?
库
现在,倍数库允许您存储敏感的本机代码:
- Expo-Secure商店
- React-Native-Keychain
- React-Native-Nativation-inverpted存储
注意:在本地侧,这些库可以使用:
- iOS的钥匙扣
- Android的Android密钥店
- 加密Android的共享偏好
示例
以下是用反应 - 键链使用的示例
对于iOS,它使用键链共享功能
对于Android,它使用:
- API级别16-22使用Facebook隐藏
- API级别23 使用Android密钥库
您可以这样使用:
// Generic Password, service argument optional
Keychain
.setGenericPassword(username, password)
.then(function() {
console.log('Credentials saved successfully!');
});
// service argument optional
Keychain
.getGenericPassword()
.then(function(credentials) {
console.log('Credentials successfully loaded for user ' + credentials.username);
}).catch(function(error) {
console.log('Keychain couldn't be accessed! Maybe no value set?', error);
});
通常,异步用来存储数据中的数据,但根本不是安全的。Expo-Secure商店由Expo-Team维护和开发,并且与Asyncstorage相同。
它使用加密的密钥链服务,该服务在存储和检索时可以放置数据,从而使其超级安全。
另外,可以使用加密数据库(例如Realm),并且加密密钥将存储在钥匙扣中。
领域也可能不受博览会的支持(因此您需要使用裸露的反应本机工作流或弹出)。