Android Google Passkey获取方式咨询:客户端获取还是服务器创建导入?
Passkey 获取流程说明
针对你提到的「从用户的公钥凭证提供方获取passkey」,实际获取逻辑分两种核心场景,和“服务器创建再导入”的思路完全不同:
首次注册(创建Passkey)
不需要先在服务器生成Passkey再导入客户端。正确流程是:客户端(Android App)调用系统WebAuthn相关API,触发设备的公钥凭证提供方(比如Android的Google Play Services安全模块)生成一对公私钥。其中私钥会被安全存储在本地凭证提供方内,公钥则由客户端上传至业务服务器保存。此时Passkey已存在客户端的凭证提供方中,后续登录直接调用API获取即可。登录/跨设备使用(获取已有Passkey)
- 同一设备:客户端直接调用系统API,从本地公钥凭证提供方中获取对应Passkey(实际是调用私钥完成签名操作,私钥不会被导出)。
- 跨设备同步:如果用户在新设备使用已创建的Passkey,是通过凭证提供方的同步服务(如Google密码管理器、iCloud钥匙串)自动同步到新设备的凭证提供方中,客户端同样调用本地API获取,无需从服务器导入Passkey本身——服务器仅需验证客户端传来的签名结果即可。
总结:Passkey的核心逻辑是客户端(设备凭证提供方)生成并持有私钥,服务器仅存储公钥,所有获取操作都是客户端直接与本地/同步后的凭证提供方交互,不存在“服务器创建后导入客户端”的步骤。
内容的提问来源于stack exchange,提问作者HamTory
相关产品推荐
相关产品推荐

