Lompat ke konten

Catatan Backend

Backend Anda masih mengontrol proses WebAuthn normal:

  • menghasilkan registrasi dan tantangan autentikasi
  • mengverifikasi respons atestasi dan asertasi
  • menggunakan ID dan validasi tantangan pihak yang berkepentingan
  • menyimpan kredential dan menghitung counter dengan cara yang sama seperti Anda lakukan untuk aliran browser

Plugin ini dirancang untuk mempertahankan bentuk depan WebAuthn Anda yang sudah ada code.

  • Di web, ia mengalihkan ke WebAuthn browser asli API.
  • Pada native Capacitor, itu kembali objek kreditur browser seperti yang didukung oleh native passkey APIs.
  • Server Anda dapat menjaga pipeline tantangan dan verifikasi yang sama.

Passkey native Android tidak identik dengan model kepercayaan browser.

  • Digital Asset Links memungkinkan Android berbagi model kepercayaan dan ekosistem kreditur yang sama dengan situs web Anda.
  • Literal clientDataJSON.origin Nilai masih dapat berbeda dari asal situs web.
  • Jika server Anda menolak kecuali https://your-domain, passkey native Android dapat gagal bahkan ketika passkey lainnya valid.

Mengizinkan asal browser yang diharapkan dan asal aplikasi Android yang diharapkan untuk pihak yang sama ketika Anda mendukung passkeys Android asli.

Itu memberikan Anda:

  • dukungan browser untuk situs web
  • dukungan passkey asli di aplikasi Capacitor
  • satu ekosistem passkey untuk domain pihak yang sama

Jika Anda membutuhkan panggilan JSON-aman langsung

Judul bagian “Jika Anda membutuhkan panggilan JSON-aman langsung”

Jika backend Anda sudah mengembalikan PublicKeyCredentialCreationOptionsJSON dan PublicKeyCredentialRequestOptionsJSONanda dapat menggunakan plugin API langsung daripada shim gaya browser:

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,
});