跳过内容

后端注释

您的后端仍然拥有正常的 WebAuthn 仪式:

  • 生成注册和身份验证挑战
  • 验证证明和断言响应
  • 强制依赖方 ID 和挑战验证
  • 以同样的方式存储凭据和计数器,浏览器流程一样

什么保持不变

标题:什么保持不变

插件旨在保留您的现有WebAuthn code的前端形状。

  • 在Web上,它转发到真实的浏览器WebAuthn API。
  • 在native Capacitor上,它返回浏览器类似的凭据对象,背靠native passkey API。
  • 您的后端可以保持相同的挑战和验证管道。

在Android上发生什么变化

标题:在Android上发生什么变化

Android原生密钥不等同于浏览器信任模型。

  • 数字资产链接让Android共享同样的依赖方和凭据生态系统。
  • 文字 clientDataJSON.origin 网站源起点的值仍然可能有所不同。
  • 如果您的服务器只接受 https://your-domain即使Android原生断言有效,Android原生断言也可能会失败。
标题:推荐的后端规则

允许支持原生Android密钥的同一个依赖方域名的预期浏览器起源和预期Android应用起源。

这给了你:

  • 网站浏览器的支持
  • 在Capacitor应用中原生密钥的支持
  • 同一个依赖方域名的同一个密钥生态系统

如果您需要直接JSON安全的调用

标题:如果您需要直接JSON安全的调用

如果您的后端已经返回 PublicKeyCredentialCreationOptionsJSONPublicKeyCredentialRequestOptionsJSON,您也可以使用直接插件 API 代替浏览器样式 shim:

import { CapacitorPasskey } from '@capgo/capacitor-passkey';
const registration = await CapacitorPasskey.createCredential({
origin: 'https://signin.example.com',
publicKey: registrationOptionsFromBackend,
});
const authentication = await CapacitorPasskey.getCredential({
origin: 'https://signin.example.com',
publicKey: requestOptionsFromBackend,
});