缺少authenticatorSelection声明时,Google Credential Manager创建Passkey失败
Google密码管理器创建Passkey时要求
authenticatorSelection字段的问题分析 问题现象
- 基于Android《使用Credential Manager登录用户》指南完成业务适配后,Samsung Pass、Dashlane均可正常创建Passkey,但Google密码管理器抛出无意义错误:
androidx.credentials.exceptions.CreateCredentialCustomException: 34000: null
根因定位
- 经反复测试验证,问题源于后端返回的
PublicKeyCredentialCreationOptions未包含authenticatorSelection字段(Android官方示例中默认包含该字段) - 添加非空的
authenticatorSelection声明后,Google密码管理器可正常创建Passkey;且通过Android官方示例应用复现了该依赖行为
规范与实现差异
- WebAuthn 2规范并未将
authenticatorSelection标记为必填字段 - 目前未找到Google密码管理器强制要求该字段的官方文档,此为Google密码管理器的实现特定要求,不属于WebAuthn规范的强制约束
结论
这是Google密码管理器的实现行为,并非你对规范的误解或遗漏文档。为兼容所有主流Passkey管理器,建议在PublicKeyCredentialCreationOptions中始终包含非空的authenticatorSelection字段,即使规范不强制要求。示例默认配置可参考:
"authenticatorSelection": { "authenticatorAttachment": "platform", "residentKey": "preferred", "userVerification": "preferred" }
内容的提问来源于stack exchange,提问作者nbrr
相关产品推荐
相关产品推荐

