Zum Inhalt springen

Hinweise zum Backend

Ihr Backend besitzt den normalen WebAuthn-Zeremoniell noch immer:

  • Erstellen Sie Registrierungs- und Authentifizierungsanfragen
  • Überprüfen Sie Attestations- und Anmeldeantworten
  • Stellen Sie sicher, dass der Relying-Party-Id und die Herausforderungsvalidierung
  • Speichern Sie Anmeldeinformationen und Zähler auf die gleiche Weise wie für einen Browser-Flow

Das Plugin ist so konzipiert, um die Vorderseite Ihres bestehenden WebAuthn code zu erhalten.

  • Auf der Webseite wird es auf die echte Browser-WebAuthn API weitergeleitet.
  • Auf nativen Capacitor, werden Browser-ähnliche Anmeldeobjekte zurückgegeben, die von nativen Passwort-APIs unterstützt werden.
  • Ihr Backend kann den gleichen Herausforderungs- und Verifizierungs-Pipeline behalten.

Android-native Passwörter sind nicht identisch mit einem Browser-Vertrauensmodell.

  • Digitale Asset Links ermöglichen es Android, dass derselbe Relying-Party und das gleiche Kredit-Ökosystem wie Ihre Website geteilt wird.
  • Die wörtliche clientDataJSON.origin Wert kann sich trotzdem von der Website-URL unterscheiden.
  • Wenn Ihr Server nur https://your-domainaußer Acht lässt, können Android-native Anforderungen auch dann fehlschlagen, wenn das Passwort sonst gültig ist.

Ermöglichen Sie die erwartete Browser- und die erwartete Android-App-Quelle für denselben Relying-Party, wenn Sie native Android-Passkeys unterstützen.

Das gibt Ihnen:

  • Browserunterstützung für die Website
  • native Passkey-Unterstützung in der Capacitor-App
  • Eine Passkey-Ökosystem für denselben Relying-Party-Domäne

Wenn Ihr Backend bereits JSON-sichere Aufrufe zurückgibt PublicKeyCredentialCreationOptionsJSON und PublicKeyCredentialRequestOptionsJSONSie können auch den direkten Plugin API verwenden anstatt des Browser-Style-Shims:

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