Android原生应用创建Passkey遇[50152] RP ID验证失败问题求助
Android Passkey创建报错:[50152] RP ID无法验证的解决办法
问题重现
在Android原生应用中实现Passkey创建功能时,触发以下错误:
androidx.credentials.exceptions.publickeycredential.CreatePublicKeyCredentialDomException: [50152] RP ID cannot be validated.
当前使用的Digital Asset Links配置:
[ { "relation": [ "delegate_permission/common.handle_all_urls", "delegate_permission/common.get_login_creds" ], "target": { "namespace": "android_app", "package_name": "你的应用包名", "sha256_cert_fingerprints": [ "SHA1指纹" ] } }, { "relation": [ "delegate_permission/common.handle_all_urls", "delegate_permission/common.get_login_creds" ], "target": { "namespace": "web", "site": "你的域名" } } ]
修复步骤
修正证书指纹类型:配置中
sha256_cert_fingerprints字段错误填入了SHA1指纹,必须替换为SHA-256指纹。获取方式:
在终端执行命令:keytool -list -v -keystore 你的密钥库文件路径 -alias 密钥别名找到输出中
SHA256:开头的字符串,复制填入配置。确保RP ID与域名匹配:创建Passkey时指定的RP ID必须是配置中
site字段域名的合法注册后缀。例如域名是app.yourdomain.com,RP ID可以是yourdomain.com或app.yourdomain.com,不能使用更深层级的子域名(如sub.app.yourdomain.com)除非对应配置了资产链接。验证资产链接文件部署:
- 资产链接文件必须放在域名根目录下的
/.well-known/assetlinks.json路径 - 确保文件可通过HTTPS正常访问(HTTP无法通过验证)
- 检查JSON格式是否完全合法,无语法错误(原配置缺少外层数组开头的
[,已在示例中修正)
- 资产链接文件必须放在域名根目录下的
确认签名密钥一致性:使用的SHA-256指纹必须和当前测试/发布的应用签名密钥一致,测试包(如debug包)和正式包的密钥指纹通常不同,不要混用。
内容的提问来源于stack exchange,提问作者Rahul Deep Singh
相关产品推荐
相关产品推荐

