后端说明
复制包含安装步骤和该插件完整 Markdown 指南的配置 prompt。
您的后端仍需负责标准的 WebAuthn 流程:
- 生成注册与身份验证的 challenge
- 验证 attestation 与 assertion 响应
- 强制执行 relying-party ID 和 challenge 校验
- 按浏览器流程的相同方式存储凭据与计数器
保持不变的部分
“保持不变的部分”该插件旨在保留您现有 WebAuthn code 的前端形态。
- 在 Web 端,它会转发至真实的浏览器 WebAuthn API。
- 在原生 Capacitor 上,它会返回由原生 passkey API 支持的类浏览器凭据对象。
- 您的后端可以沿用相同的 challenge 和验证 pipeline。
Android 端的变更
“Android 端的变化”Android 原生 passkeys 与浏览器的信任模型并不完全相同。
- 通过 Digital Asset Links,Android 可以与您的网站共享相同的 Relying Party 和凭据生态系统。
- 字面上的
clientDataJSON.originvalue 仍可能与网站 origin 不同。 - 如果您的服务器拒绝除以下内容以外的任何请求:
https://your-domain,即使 passkey 本身有效,Android 原生断言也可能会失败。
推荐的后端规则
标题为“推荐的后端规则”的部分在支持 Android 原生 passkey 时,请为同一个 Relying Party 同时允许预期的浏览器 Origin 和 Android 应用 Origin。
这将为您提供:
- 网站的浏览器支持
- Capacitor 应用中的原生 passkey 支持
- 针对同一 Relying-party 域名的统一 passkey 生态系统
如果需要直接发起 JSON 安全调用
标题为“如果需要直接进行 JSON 安全调用”的部分如果您的后端已经返回 PublicKeyCredentialCreationOptionsJSON 以及 PublicKeyCredentialRequestOptionsJSON,你也可以直接使用 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,});继续阅读后端注意事项
标题为“继续阅读 Backend Notes”的部分如果你正在使用 后端说明 用来规划身份验证和账户流程,并将它与 使用 @capgo/capacitor-passkey 在“使用 @capgo/capacitor-passkey”中了解原生能力, @capgo/capacitor-social-login 在 @capgo/capacitor-social-login 中查看实现细节, @capgo/capacitor-passkey 有关 @capgo/capacitor-passkey 的实现细节, @capgo/capacitor-native-biometric 以及 @capgo/capacitor-native-biometric 中的实现细节, 双因素认证 有关双重身份验证的实现细节。