如何实现对本机otp检索器的反应并为应用程序生成哈希密钥

时间:2019-09-24 08:35:53

标签: react-native react-native-android one-time-password sms-verification

React原生入门

我正在尝试使用OTP自动验证react-native-sms-retriever 我已经在项目中实现了以下示例

Example implemented此示例不是获取哈希键的方法。您必须通过执行命令手动获取

当我执行命令时,它不会要求输入密码。它应该问because of here it is

  

我已经使用贝娄命令生成了调试哈希键   在“ java / bin”文件夹中执行。但不是

keytool -exportcert -alias androiddebugkey -keystore '~\.android\debug.keystore' | xxd -p | tr -d "[:space:]" | echo -n com.opick.app cat | sha256sum | tr -d "[:space:]-" | xxd -r -p | base64 | cut -c1-11

如何为以下尝试生成的发布版本生成哈希密钥会返回错误的密钥

keytool -exportcert -alias my-key-alias -keystore my-key.keystore | xxd -p | tr -d "[:space:]" | echo -n com.opick.app `cat` | sha256sum | tr -d "[:space:]-" | xxd -r -p | base64 | cut -c1-11

我已阅读文档,他们说您需要在上述命令中为path添加release keystore。对我来说,我无法正常工作,请在同一页面上更新

主要挑战是cmdbash上生成的密钥不同

4 个答案:

答案 0 :(得分:1)

import SmsRetriever from 'react-native-sms-retriever';

// Get the phone number (first gif)
 _onPhoneNumberPressed = async () => {
  try {
    const phoneNumber = await SmsRetriever.requestPhoneNumber();
  } catch (error) {
    console.log(JSON.stringify(error));
  }
 };

// Get the SMS message (second gif)
_onSmsListenerPressed = async () => {
  try {
    const registered = await SmsRetriever.startSmsRetriever();
    if (registered) {
      SmsRetriever.addSmsListener(event => {
        console.log(event.message);
        SmsRetriever.removeSmsListener();
      }); 
    }
  } catch (error) {
    console.log(JSON.stringify(error));
  }
};

有关超时错误,请参见:https://github.com/Bruno-Furtado/react-native-sms-retriever/issues/4

答案 1 :(得分:0)

我尝试了两个三个示例,但是无法获得hash key广告release的{​​{1}},然后尝试按照以下解决方案进行操作,效果非常理想。 您也可以使用此代码获取debug,然后继续执行

react-native-otp-verify

  

以下代码将为您提供用于发布和调试apk的哈希密钥,只需获取密钥并将其复制到某个地方即可使用

hash key

答案 2 :(得分:0)

有一篇很棒的文章教程,介绍如何在未经许可的情况下,在React Native中实现OTP自动验证。

Link1

但是为此,您将需要生成11位唯一的哈希密钥。您会在link2中找到它;

Link2

答案 3 :(得分:0)

react-native-otp-verify 就像一个魅力 :) 。好东西,它还为您提供了哈希值。您只需在 SMS 的末尾附加哈希值即可。