1

React Native 初学者

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

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

当我执行命令时,它不会要求输入密码。它应该问,因为它是

我已经使用在“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

4 回答 4

2

我已经尝试了两个三个示例,但我无法获得hash keyforrelease广告debug然后我尝试了以下解决方案它工作得很好。您也可以使用此代码获取hash key并继续您的实施

反应本机 otp 验证

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

import RNOtpVerify from 'react-native-otp-verify';

getHash = () =>
   RNOtpVerify.getHash()
  .then(console.log)
  .catch(console.log);

startListeningForOtp = () =>
    RNOtpVerify.getOtp()
    .then(p => RNOtpVerify.addListener(this.otpHandler))
    .catch(p => console.log(p));

otpHandler = (message: string) => {
    const otp = /(\d{4})/g.exec(message)[1];
    this.setState({ otp });
    RNOtpVerify.removeListener();
    Keyboard.dismiss();
  }

 componentWillUnmount() {
   RNOtpVerify.removeListener();
 }
于 2019-09-25T12:05:01.033 回答
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

于 2019-09-24T09:12:59.337 回答
0

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

链接1

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

链接2

于 2020-11-16T08:13:32.700 回答
-1

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

于 2021-03-05T06:52:07.747 回答