Aller directement au contenu

Notes sur le backend

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

  • générer des défis d'enregistrement et d'authentification
  • vérifier les réponses d'attestation et d'assertion
  • exiger la validation de l'ID et des défis de la partie dépendante
  • stocker les informations de connexion et les comptes comme 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 WebAuthn de navigateur API.
  • Sur les appareils natifs Capacitor, il retourne des objets de crédentials similaires à ceux d'un navigateur, basés sur les API de passkey natives.
  • Votre serveur peut conserver le même pipeline de challenge 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édentials que votre site web.
  • La valeur littérale clientDataJSON.origin La valeur peut toujours différer de l'origine du site web.
  • Si votre serveur rejette tout excepté https://your-domainLes assertions natives d'Android peuvent échouer même lorsque la passkey 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 clés de passe natives Android.

Cela vous donne :

  • le support du navigateur pour le site web
  • le support des clés de passe natives dans l'Capacitor application
  • un écosystème de clés de passe unique pour le même domaine de partenaire de confiance

Si vous avez besoin d'appels JSON-sûrs directs

Si vous avez besoin d'appels JSON-sûrs directs

Si votre serveur backend retourne déjà PublicKeyCredentialCreationOptionsJSON et PublicKeyCredentialRequestOptionsJSONVous 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,
});