Aller directement au contenu

Remarques sur le backend

Votre backend possède toujours la cérémonie WebAuthn normale :

  • Générer des défis de registration et d'authentification
  • Vérifier les réponses d'attestation et d'assertion
  • Valider l'ID et les défis de la partie dépendante
  • stockez les informations de connexion et les compteurs de la même manière que vous le feriez pour un flux de navigateur

Le plugin est conçu pour préserver la forme front-end de votre WebAuthn existant code.

  • Sur le web, il redirige vers le vrai navigateur WebAuthn API.
  • Sur native Capacitor, il retourne des objets de connexion de type navigateur similaires, basés sur les API de passkey natives.
  • Votre backend peut conserver la même pipeline de défi et de vérification.

Les passkeys natives d'Android ne sont pas identiques au modèle de confiance d'un navigateur.

  • Les liens d'actif numérique permettent à Android de partager le même partenaire de confiance et écosystème de crédit que votre site web.
  • La littérale clientDataJSON.origin La valeur peut toujours différer de l'origine du site web.
  • Si votre serveur rejette uniquement https://your-domainLes assertions natives Android peuvent échouer même lorsque le code passeport est valide.

Autorisez l'origine du navigateur attendue et l'origine de l'application Android attendue pour le même partenaire de confiance lorsque vous supportez les passeports Android natifs.

Cela vous donne :

  • Support du navigateur pour le site web
  • Support des passeports natifs dans l'application Capacitor
  • Un écosystème de passeports unique pour le même domaine de partenaire de confiance

Si votre backend retourne déjà PublicKeyCredentialCreationOptionsJSON et PublicKeyCredentialRequestOptionsJSON, vous pouvez également utiliser le plugin direct API au lieu du shim de style navigateur :

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