首页 > 解决方案 > 如何实现反应原生 otp 检索器并为应用程序生成哈希键

问题描述

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

标签: react-nativereact-native-androidone-time-passwordsms-verification

解决方案


我已经尝试了两个三个示例,但我无法获得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();
 }

推荐阅读