我想用SafetyNet验证电话号码Firebase,而不是重新CAPTCHA验证。我在这里遵循Firebase留档:https://firebase.google.com/docs/auth/android/phone-auth
它总是将我重定向到网页,以验证我不是机器人。我试着移除
implementation 'androidx.browser:browser:1.3.0'
但应用程序崩溃了。
这是我用于SafetyNet的代码,它总是成功,但随后会显示网页。我想知道如何防止应用程序总是重定向到reCAPTCHA验证,尽管认证功能工作正常。
private fun checkSafetyNet() {
if (GoogleApiAvailability.getInstance().isGooglePlayServicesAvailable(context)
== ConnectionResult.SUCCESS
) {
val nonce =
(getString(R.string.app_name) + Random.nextInt(100) + getString(R.string.otp_verification)).toByteArray()
SafetyNet.getClient(this.requireActivity())
.attest(nonce, API_KEY)
.addOnSuccessListener {
// Indicates communication with the service was successful
setFirebasePhoneVerificationCallbacks()
startPhoneNumberVerification()
}.addOnFailureListener { e ->
// An error occurred while communicating with the service.
if (e is ApiException) {
// An error with the Google Play services API contains some
// additional details.
val apiException = e as ApiException
Log.i("SAFETYERROR", apiException.message.toString())
// You can retrieve the status code using the
// apiException.statusCode property.
} else {
// A different, unknown type of error occurred.
Log.d("SafetyNetError", "Error: " + e.message)
}
}
} else {
// Prompt user to update Google Play services.
}
}
根据firebase,只有在以下情况下才会触发reCAPTCHA流:
>
当SafetyNet不可用时。
如果用户不支持Google Play服务,或者当您在模拟器上测试应用程序时。
您的设备未通过可疑检查。
如果您的设备已根植或设备引导加载程序处于UNLOCKED状态,则由于第三种情况,应用程序reCAPTCHA验证将可见。
检查应用日志中的标记"SafetyNet",并确认设备引导加载程序是否已锁定或解锁。
如果引导加载程序未锁定,safetyNet将提供屏幕截图中提到的建议锁定引导加载程序。日志示例:
"SafetyNetAtteStation验证器E未通过SafetyNetAtteStation响应。"
“SafetyNetAttestationVerifier E无法html" target="_blank">分析SafetyNet DetectionResponse”
msgstr"SafetyNetAtteStation验证器E SafetyNet验证失败基本完整性。"
“SafetyNetateStationVerifier E SafetyNet认证有建议:XXXXXXXX”
我已经在我现有的android项目上附加了firebase,并运行了它。这是一个场景:如果应用程序通过开发者模式从android studio运行,它(通过电话号码登录Firebase)运行平稳,我也能成功登录。但是,每当我构建签名的调试apk,Firebase都不允许登录。它给出了以下信息: 此应用程序未被授权使用Firebase身份验证。请验证firebase控制台中配置了正确的包名称和SHA
X2.3.0新增(暂时无法使用) sp_check_mobile_verify_code($mobile='',$verifycode='') 功能: 手机验证码检查,验证完后销毁验证码增加安全性 参数: $mobile: 手机号 $verifycode:验证码 返回: 类型boolean true:手机验证码正确,false:手机验证码错误 使用: $is_right_mobile_code
可用于强制重新发送SMS验证码。然而,在对医生做了一些研究之后,我仍然不知道该怎么做。
我已经在我的android应用程序中添加了Firebase手机认证,它运行良好,但是应用程序名称没有包含在短信验证消息中,因为它出现在Firebase控制台的短信模板中:(%LOGIN_CODE%是%APP_NAME%的校验码。)。 我收到的消息如下:(%LOGIN_CODE%是您的验证码) 我的应用程序的调试版本和发布版本都有这个问题。 那么,如何将应用程序名称添加到此消息中。
我正在寻找一种方法来查找从Firebase电话身份验证发送给我的代码,因为我想手动验证该代码。现在的问题是Firebase正在自动检测短信并调用onVerficationComplted(),但我有一个按钮,我想手动输入otp代码并验证。下面是我的代码。如果有任何帮助,将不胜感激。谢谢
接口说明 用来验证输入的手机号是否已注册 如需调用,请访问 开发者文档 来查看详细的接口使用说明 该接口仅开放给已获取SDK的开发者 API地址 POST /api/user/1.0.0/validatePhone 是否需要登录 否 请求字段说明 参数 类型 请求类型 是否必须 说明 phone string form 是 手机号 响应字段说明 参数 类型 说明 phoneVali String