コンテンツにジャンプ

バックエンドノート

バックエンドは通常のWebAuthn セレモニーの所有権を維持します:

  • 登録と認証の挑戦を生成する
  • 証明書と断言の応答を検証する
  • 依存するパーティー ID と挑戦の検証を強制する
  • ブラウザ フローと同様にクレデンシャルとカウンタを保存する

プラグインは、既存のWebAuthn code のフロントエンドの形状を維持するように設計されています。

  • ウェブ上では、実際のブラウザ WebAuthn API にフォワードします。
  • ネイティブ Capacitor では、ネイティブ パスキー API をバックアップするブラウザ ライクなクレデンシャル オブジェクトを返します。
  • バックエンドは同じ挑戦と検証パイプラインを維持できます。

Android では何が変わります

Androidで何が変わるか

Androidのネイティブパスキーはブラウザの信頼モデルと同じではありません。

  • デジタルアセットリンクは、Androidがウェブサイトと同じ依存先と資格情報のエコシステムを共有できるようにします。
  • 「The literal」 clientDataJSON.origin __CAPGO_KEEP_0__
  • サーバーが期待しないものを受け入れると、Androidのアサーションは有効なパスキーでも失敗する可能性があります。 https://your-domain推奨されるバックエンドのルール

これにより、次のことが実現します。

ウェブサイトのブラウザのサポート

  • Androidのネイティブパスキーはブラウザの信頼モデルと同じではありません。
  • ネイティブのパスキー サポートが Capacitor アプリ内で利用可能
  • 同じ依存パーティ ドメインのために、1 つのパスキー エコシステム

直接 JSON 安全なコールが必要な場合

「直接 JSON 安全なコールが必要な場合」のセクション

あなたのバックエンドがすでに JSON 安全なデータを返している場合 PublicKeyCredentialCreationOptionsJSON 、あなたは __CAPGO_KEEP_0__ プラグインを使用して、ブラウザ スタイルの shim の代わりに直接 JSON 安全なコールを実行することもできます 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,
});