2024年如何移除Flutter Firebase手机号验证中的reCAPTCHA界面
移除Flutter Firebase手机号验证中的reCAPTCHA验证页面
Firebase默认通过reCAPTCHA防止手机号验证被滥用,但可以通过以下方法跳过显式的reCAPTCHA验证页面:
方法1:使用Firebase App Check安全密钥(仅安卓/iOS平台)
- 登录Firebase控制台,进入App Check页面,为你的安卓/iOS应用生成安全密钥
- 在Flutter项目的原生代码中初始化App Check,用安全密钥验证替代reCAPTCHA:
安卓端(MainActivity.kt):
iOS端(import com.google.firebase.FirebaseApp import com.google.firebase.appcheck.FirebaseAppCheck import com.google.firebase.appcheck.safetynet.SafetyNetAppCheckProviderFactory class MainActivity : FlutterActivity() { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) FirebaseApp.initializeApp(this) val appCheck = FirebaseAppCheck.getInstance() appCheck.installAppCheckProviderFactory( SafetyNetAppCheckProviderFactory.getInstance() ) } }AppDelegate.swift):import Firebase import FirebaseAppCheck @UIApplicationMain class AppDelegate: FlutterAppDelegate { override func application( _ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]? ) -> Bool { FirebaseApp.configure() let appCheck = FirebaseAppCheck.appCheck() appCheck.installAppCheckProviderFactory( AppAttestProviderFactory() ) GeneratedPluginRegistrant.register(with: self) return super.application(application, didFinishLaunchingWithOptions: launchOptions) } }
方法2:验证安卓应用签名
- 到Firebase控制台的项目设置 -> 对应安卓应用页面,添加你应用签名证书的SHA-256指纹
- 确保打包发布的应用使用的签名和控制台中注册的一致,Firebase会信任该应用,跳过reCAPTCHA验证
注意事项
- 移除reCAPTCHA会提升被恶意滥用的风险,建议仅在正式发布的应用中使用上述方案,测试环境保留reCAPTCHA更稳妥
- Web平台无法完全移除reCAPTCHA,只能改用不可见的reCAPTCHA v3,避免用户手动验证的步骤
内容的提问来源于stack exchange,提问作者Isanka Samarawickrama
相关产品推荐
相关产品推荐

