跳过内容

后端笔记

GitHub

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

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

什么保持不变

标题:什么保持不变

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

  • 在Web上,它将请求转发到真实的浏览器WebAuthnAPI。
  • 在本机Capacitor上,它返回使用本机Passkey API支持的浏览器类凭据对象。
  • 您的后端可以保持相同的挑战和验证管道。

Android上发生的变化

标题:Android上发生的变化

Android本机Passkey与浏览器信任模型不完全相同。

  • 数字资产链接使Android能够与您的网站共享相同的依赖方和凭据生态系统。
  • 字面 clientDataJSON.origin 网站源值仍然可能与网站源值不同。
  • 如果您的服务器拒绝除了 https://your-domain,Android原生断言即使在passkey有效时也可能失败。

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

这给您带来了:

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

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

标题为“如果您需要直接JSON安全的调用”

If your backend already returns PublicKeyCredentialCreationOptionsJSON and PublicKeyCredentialRequestOptionsJSON, you can also use the direct plugin API instead of the browser-style 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,
});

If you are using Backend Notes to plan authentication and account flows, connect it with Using @capgo/capacitor-passkey for the native capability in Using @capgo/capacitor-passkey @capgo/capacitor-social-login 为 @capgo/capacitor 社交登录实现细节 @capgo/capacitor 密码 为 @capgo/capacitor 密码实现细节 @capgo/capacitor 原生生物识别 为 @capgo/capacitor 原生生物识别实现细节, 和 双因素身份验证 为双因素身份验证实现细节