コンテンツにスキップ

バックエンドの注記

あなたのバックエンドは通常のWebAuthn式典を所有しています:

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

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

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

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

  • デジタルアセットリンクは、Androidがウェブサイトと同じ依存パーティーとクレデンシャルエコシステムを共有できるようにします。
  • 「Literal」 clientDataJSON.origin ウェブサイトのオリジンと値が異なる場合もあります。
  • サーバーが受け入れないものは https://your-domainAndroidのネイティブアサーションは、パスキーが有効である場合でも失敗することがあります。

同じ依存パーティドメインでウェブサイトのブラウザサポートと、__CAPGO_KEEP_0__ アプリのネイティブパスキーをサポートする場合、期待されるブラウザオリジンと期待されるAndroidアプリオリジンを許可します。

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

  • ウェブサイトのブラウザサポート
  • ネイティブパスキーをサポートするCapacitor アプリ
  • 同じ依存パーティドメインでパスキー生態系が統一されます。

直接JSONセーフな呼び出しを行う必要がある場合

「直接JSONセーフな呼び出しを行う必要がある場合」のセクション

あなたのバックエンドがすでに返している場合 PublicKeyCredentialCreationOptionsJSON かつ 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,
});