Saltare al contenuto

Nota backend

Il tuo backend possiede ancora la cerimonia WebAuthn normale:

  • generare registrazioni e sfide di autenticazione
  • verificare le risposte di attestazione e di affermazione
  • imporre la validazione dell'ID e della sfida del partner di fiducia
  • memorizza le credenziali e i contatori allo stesso modo in cui faresti per un flusso di browser

Il plugin è progettato per preservare la forma front-end del tuo WebAuthn esistente code.

  • In rete, si reindirizza al WebAuthn del browser reale API.
  • Su nativo Capacitor, restituisce oggetti di credenziali browser-like supportati da API native passkey.
  • Il tuo backend può mantenere la stessa pipeline di sfida e verifica.

Le passkey native di Android non sono identiche al modello di fiducia di un browser.

  • I Digital Asset Links consentono a Android di condividere lo stesso partito di fiducia e l'ecosistema delle credenziali del tuo sito web.
  • La letterale clientDataJSON.origin Il valore può ancora differire dall'origine del sito web.
  • Se il tuo server rifiuta qualsiasi cosa eccetto https://your-domainLe affermazioni native Android possono fallire anche quando il passkey è altrimenti valido.

Consenti l'origine del browser prevista e l'origine dell'app Android prevista per lo stesso ente di fiducia quando supportate le chiavi passkey native Android.

Ciò ti dà:

  • Supporto del browser per il sito web
  • Supporto delle chiavi passkey native nell'app Capacitor
  • Un'unica ecosistema delle chiavi passkey per lo stesso dominio di ente di fiducia

Se il tuo backend già restituisce PublicKeyCredentialCreationOptionsJSON e PublicKeyCredentialRequestOptionsJSON, puoi anche utilizzare il plugin diretto API al posto dello shim a stile 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,
});