如何实现本机 otp 检索器并为应用程序生成哈希密钥
How to Implement react native otp retriever and generate hash key for application
React native 初学者
我正在尝试使用 react-native-sms-retriever
自动验证 OTP
我在项目
中实现了以下示例
Example implemented 这个例子不是获取散列键的证明方法。你必须通过执行命令手动获取它
当我执行命令时,它不会要求输入密码。它应该问 because of here it is
I have generated debug hash key using bellow command
executed in 'java/bin' folder. But its not
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
如何为发布版本生成散列密钥尝试遵循 returns 错误的密钥
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
我读过文件,他们说你需要为上面的 release keystore
添加 path
command.for 我没有工作,请更新
主要挑战是在 cmd
和 bash
上生成的密钥不同
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
我已经尝试了两个三个示例,但我无法为 release
和 debug
获得 hash key
然后我尝试了以下解决方案它完美地工作。
您也可以使用此代码获取 hash key
,然后您可以继续实施
The following code will give you hash key for both release and debug apk just get the key and copy it somewhere for use
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();
}
有一篇很棒的文章教程介绍了如何在未经许可的情况下在 React Native 中实现 OTP 自动验证。
但为此您需要生成 11 位唯一哈希密钥。你会发现在 link2;
react-native-otp-verify 一个很有魅力:)。好东西,它也给你散列..你需要做的就是在短信末尾附加散列。
React native 初学者
我正在尝试使用 react-native-sms-retriever
自动验证 OTP
我在项目
Example implemented 这个例子不是获取散列键的证明方法。你必须通过执行命令手动获取它
当我执行命令时,它不会要求输入密码。它应该问 because of here it is
I have generated debug hash key using bellow command executed in 'java/bin' folder. But its not
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
如何为发布版本生成散列密钥尝试遵循 returns 错误的密钥
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
我读过文件,他们说你需要为上面的 release keystore
添加 path
command.for 我没有工作,请更新
主要挑战是在 cmd
和 bash
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
我已经尝试了两个三个示例,但我无法为 release
和 debug
获得 hash key
然后我尝试了以下解决方案它完美地工作。
您也可以使用此代码获取 hash key
,然后您可以继续实施
The following code will give you hash key for both release and debug apk just get the key and copy it somewhere for use
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();
}
有一篇很棒的文章教程介绍了如何在未经许可的情况下在 React Native 中实现 OTP 自动验证。
但为此您需要生成 11 位唯一哈希密钥。你会发现在 link2;
react-native-otp-verify 一个很有魅力:)。好东西,它也给你散列..你需要做的就是在短信末尾附加散列。