You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

React Native应用Android 10无法创建Passkey问题求助

解决Android 10设备使用react-native-passkey创建Passkey失败的问题

针对你遇到的Android 10设备报错{"error": "Native error", "message": "Error: The incoming request cannot be validated"},可以从以下几个方向排查修复:

1. 修正RP ID配置

Android 10对WebAuthn的RP ID验证更严格,直接使用包名com.myapp不符合规范,需要调整为与应用关联的验证域名,同时完成Digital Asset Links配置:

  • 将rp.id改为你的验证域名(比如yourdomain.com),注意域名必须是顶级或二级域名,不能包含路径
  • 在域名根目录放置/.well-known/assetlinks.json文件,内容示例:
[{
  "relation": ["delegate_permission/common.handle_all_urls"],
  "target": {
    "namespace": "android_app",
    "package_name": "com.myapp",
    "sha256_cert_fingerprints": ["你的APK签名SHA256指纹"]
  }
}]
  • 确保APK的签名指纹与文件中一致,可通过keytool -list -v -keystore 你的密钥库文件获取指纹

2. 调整Resident Key参数

部分Android 10设备的平台验证器可能不强制支持Resident Key(可发现凭证),将authenticatorSelection.requireResidentKey从true改为preferred或false:

'authenticatorSelection': {
  'authenticatorAttachment': 'platform',
  'requireResidentKey': false, // 改为false或preferred
  'userVerification': 'preferred',
},

3. 验证Challenge编码格式

确保后端生成的Challenge是base64url编码且无填充字符:

  • 检查你的challenge值是否符合要求,避免使用普通base64编码(带+、/或=)
  • 若后端生成的是普通base64,需转换为base64url(将+替换为-,/替换为_,去掉末尾的=)

4. 检查Google Play Services版本

Android 10的Passkey功能依赖Google Play Services,需确保设备上的Google Play Services版本≥20.0.0:

  • 引导用户在设备的Google Play商店中更新Google Play Services
  • 可在应用中添加版本检测逻辑,提示用户更新

内容的提问来源于stack exchange,提问作者Suppose

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.15 13:22:46