Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/react-native/7.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Performance 如何优化react本机密钥链性能?_Performance_React Native_Jwt Auth_React Native Keychain - Fatal编程技术网

Performance 如何优化react本机密钥链性能?

Performance 如何优化react本机密钥链性能?,performance,react-native,jwt-auth,react-native-keychain,Performance,React Native,Jwt Auth,React Native Keychain,我正在构建一个react本机应用程序,它使用react本机密钥链安全地保存用户的令牌。我知道keychain是用来保存用户名/密码组合的,但我认为保存我的令牌不会有什么坏处。我目前正在实施一些检查机制,检查是否有可用的有效刷新令牌(这意味着最后一个用户在离开应用程序时没有注销,这通常发生在移动应用程序中),并将相应地采取行动。这似乎执行得很差(太慢),我得出的结论是,正是获取令牌阻碍了应用程序(Keychain.getGenericPassword()) 问题是:既然keychain似乎是本地存

我正在构建一个react本机应用程序,它使用react本机密钥链安全地保存用户的令牌。我知道keychain是用来保存用户名/密码组合的,但我认为保存我的令牌不会有什么坏处。我目前正在实施一些检查机制,检查是否有可用的有效刷新令牌(这意味着最后一个用户在离开应用程序时没有注销,这通常发生在移动应用程序中),并将相应地采取行动。这似乎执行得很差(太慢),我得出的结论是,正是获取令牌阻碍了应用程序(Keychain.getGenericPassword())

问题是:既然keychain似乎是本地存储凭据的最安全的方法,那么有没有一种方法可以优化其性能,或者有没有一种同样安全但通常更快的替代方法?“react native keychain”版本:“6.2.0”

对于仍在试图解决此问题的任何人。我也遇到过同样的问题,延迟时间大约为10秒或更长。在经历了这两个问题之后,我能够将其缩短到不到一秒钟。我遵循了评论中提到的步骤

  • 使用方法
    getGenericPassword
    setGenericPassword
    时,请使用
    {storage:KeyChain.storage\u TYPE.AES}
    选项

  • 转到此文件:
    node\u modules\react native keychain\android\src\main\java\com\oblador\keychain\keychain modulebuilder.java
    并将
    默认值\u USE\u WARM\u
    设置为
    false

  • 转到此文件:
    node\u modules\react native keychain\android\src\main\java\com\oblador\keychain\KeychainModule.java
    在方法内部
    getGenericPassword
    并更改以下内容:更改 这些线

    final String accessControl = getAccessControlOrDefault(options);   
    final boolean useBiometry = getUseBiometry(accessControl);   
    final CipherStorage current = getCipherStorageForCurrentAPILevel(useBiometry);   
    


  • 这个问题似乎是因为RSA加密使用了一种升温机制。请按照以上三个链接获取更多信息。

    谢谢您的回答。我会看一看你发布的链接,但我必须说,提供的解决方案中的步骤2和步骤3似乎有点临时。据我所知,在node_模块中进行更改只会影响我正在开发的本地环境,因为我不应该将该文件夹推送到github。所以这些变化不会影响到我同事的构建或发布的应用程序。感谢Android 10上的帮助,我希望这对其他Android也有帮助。从5点到10点
    // final String accessControl = getAccessControlOrDefault(options);  
    // final boolean useBiometry = getUseBiometry(accessControl);   
    // final CipherStorage current = getCipherStorageForCurrentAPILevel(useBiometry);
    final CipherStorage current = getSelectedStorage(options);