如何将敏感数据存储在React Native或Expo代码中?(带钥匙扣和钥匙店)



我看到了几个问题,询问"如何存储敏感的数据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),并且加密密钥将存储在钥匙扣中。

领域也可能不受博览会的支持(因此您需要使用裸露的反应本机工作流或弹出)。

相关内容

  • 没有找到相关文章

最新更新