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

Jetpack Compose安卓Passkeys PoC中rpId验证失败求助

Android Jetpack Compose Passkeys PoC: rpId验证失败问题

我正在用Jetpack Compose开发Android应用的Passkeys概念验证(PoC),已经完成了应用与Web认证所需的数字资产链接(assetlinks.json)配置及域名验证步骤,但在尝试使用Passkeys时遇到了rpId验证失败的错误。具体场景是通过浏览器创建Passkey后,在原生应用中无法调用它。

已完成的配置与验证操作

  • 执行adb shell pm get-app-links my.package.example验证域名关联状态,返回结果:
my.package.example:
  ID: 09699a58-4970-4dd8-8f30-323c5c792297
  Signatures: [CF:BF:CC:4C:AF:28:CF:82:35:F9:9D:D0:F5:C6:14:1A:AC:CF:E9:50:AA:12:25:80:E5:1D:BD:60:1E:04:21:53]
  Domain verification state:
    my.domain.com: 1024
  • 部署了/.well-known/assetlinks.json文件,内容如下:
[
    {
        "relation": [
            "delegate_permission/common.get_login_creds",
            "delegate_permission/common.handle_all_urls"
        ],
        "target": {
            "namespace": "android_app",
            "package_name": "my.package.example",
            "sha256_cert_fingerprints": [
                "CF:BF:CC:4C:AF:28:CF:82:35:F9:9D:D0:F5:C6:14:1A:AC:CF:E9:50:AA:12:25:80:E5:1D:BD:60:1E:04:21:53"
            ]
        }
    },
    {
        "relation": [
            "delegate_permission/common.handle_all_urls",
            "delegate_permission/common.get_login_creds"
        ],
        "target": {
            "namespace": "web",
            "site": "https://my.domain.com"
        }
    }
]
  • AndroidManifest.xml中配置了带android:autoVerify="true"的intent-filter:
<intent-filter android:autoVerify="true">
    <action android:name="android.intent.action.VIEW" />
    <category android:name="android.intent.category.DEFAULT" />
    <category android:name="android.intent.category.BROWSABLE" />
    <data android:scheme="https" />
    <data android:host="my.domain.com" />
</intent-filter>
  • 字符串资源中正确配置了资产声明:
<string name="asset_statements" translatable="false">
  [{"include": "https://my.domain.com/.well-known/assetlinks.json"}]
</string>
  • Passkeys认证请求中已明确传入rpId参数:
val requestJson = JSONObject().apply {
    put("challenge", authorizationResponse.metadata.challenge)
    put("rpId", "my.domain.com")
    put("allowCredentials", JSONArray())
    put("timeout", 18000)
    put("userVerification", "required")
}

当前遇到的问题

尽管完成了所有上述配置,仍然收到错误提示:rpId validation failed,且pm get-app-links命令返回的域名验证状态为my.domain.com: 1024,始终无法完成验证。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.17 14:01:15