verifySolution() wird serverseitig in deinem Verify-Endpunkt aufgerufen, um zu prüfen, ob der Browser alle Challenge-Tokens korrekt gelöst hat. Es prüft die JWT-Signatur, den Token-Ablauf, den SHA-256-Hash-Beweis und verhindert (standardmäßig) die Wiederverwendung von Tokens.
Import
Signatur
Parameter
Das/die ursprüngliche(n) JWT-Token, das/die von
createChallenge() zurückgegeben wurde(n). Übergib dieselben Tokens, die dein Challenge-Endpunkt ausgegeben hat.nonce
number | string | Array<number | string> | ChallengeSolution | ChallengeSolution[]
erforderlich
Die vom Browser eingereichte(n) Lösung(en). Kann sein:
- Eine einzelne Nonce-Zeichenkette
- Ein Array von Nonce-Zeichenketten
- Ein
ChallengeSolution-Objekt{ nonce: string; hash: string } - Ein Array von
ChallengeSolution-Objekten (was das Widget alssolutionssendet)
Optionales Konfigurationsobjekt. Siehe die Optionstabelle unten.
Optionen
| Option | Typ | Standard | Beschreibung | ||
|---|---|---|---|---|---|
replayPrevention | `‘local' | 'remote' | 'disabled’` | 'local' | Steuert, wie die Wiederverwendung von Tokens verhindert wird |
replayStore | ReplayStore | undefined | Erforderlich, wenn replayPrevention auf 'remote' gesetzt ist. Implementiert die Methode consume(). | ||
debug | boolean | auto (in dev true) | Verifizierungs-Warnungen in der Konsole protokollieren | ||
onWarning | (warning: VerifyWarning) => void | undefined | Callback für strukturierte Warn-Ereignisse |
Rückgabewert
Promise<boolean>. Gibt true nur dann zurück, wenn ALLE Tokens gültige Lösungen haben und die Replay-Prüfungen bestehen. Gibt bei jedem Fehler false zurück, ohne einen Fehler zu werfen.
Beispiele
Grundlegende Verwendung:Warn-Gründe
| Grund | Beschreibung |
|---|---|
invalid-token | JWT-Signatur ist ungültig oder fehlerhaft |
expired-token | Die Challenge-TTL ist abgelaufen |
invalid-solution | Der Nonce erzeugt keinen gültigen Hash |
replay-detected | Token wurde bereits verbraucht |
configuration-error | replayPrevention ist 'remote', aber kein replayStore wurde bereitgestellt |