Fehler: "RIBAUNT_SECRET environment variable is not set!"
Fehler: "RIBAUNT_SECRET environment variable is not set!"
RIBAUNT_SECRET fehlt in deiner Umgebung oder wurde nicht in den Prozess geladen, bevor createChallenge oder verifySolution zum ersten Mal aufgerufen wurde.Lösung: Stelle sicher, dass die Variable definiert ist, bevor dein Server seine erste Anfrage bearbeitet. Wenn du eine .env-Datei verwendest, lade sie ganz oben in deinem Einstiegspunkt mit einem Tool wie dotenv:RIBAUNT_SECRET über das Umgebungsvariablen-Dashboard deiner Plattform setzen, anstatt es in die Versionskontrolle einzuchecken. Rotiere das Secret sofort, falls es jemals versehentlich offengelegt wird.Widget-Fehler: "Web Crypto API is unavailable. Use HTTPS or localhost."
Widget-Fehler: "Web Crypto API is unavailable. Use HTTPS or localhost."
verifySolution gibt false zurück — Grund: "expired-token"
verifySolution gibt false zurück — Grund: "expired-token"
ttlSeconds in deinem createChallenge-Aufruf, um den Benutzern mehr Zeit zu geben. Der Standard ist 30 Sekunden; erwäge 120–300 für komplexe Seiten oder Formulare:verifySolution gibt false zurück — Grund: "replay-detected"
verifySolution gibt false zurück — Grund: "replay-detected"
local-Replay-Store markiert Tokens beim ersten Gebrauch als verbraucht und lehnt jede weitere Einreichung ab.Lösung: Wenn dies in normalen Benutzerabläufen geschieht, sendet dein Frontend höchstwahrscheinlich dieselben Tokens erneut (z. B. bei einem Formular-Retry). Stelle für jeden Versuch frische Tokens aus, indem du deinen Challenge-Endpunkt vor dem erneuten Absenden noch einmal aufrufst.Wenn du dies in Serverless- oder Multi-Instance-Deployments siehst, liegt das Problem darin, dass jeder Funktionsaufruf seinen eigenen In-Memory-Store hat. Tokens, die in einer Instanz verbraucht wurden, sind für andere unsichtbar. Wechsle zu replayPrevention: 'remote' mit einem verteilten Store:Widget startet die Verifizierung nicht automatisch
Widget startet die Verifizierung nicht automatisch
auto-verify fehlt, oder das Widget ist im Zustand disabled, was verhindert, dass auto-verify ausgelöst wird, selbst wenn es gesetzt ist.Lösung: Füge dem HTML-Element auto-verify="true" hinzu oder im React-Wrapper autoVerify={true}:disabled entweder nicht vorhanden oder explizit auf "false" gesetzt ist. Solange das Widget deaktiviert ist, wird auto-verify nicht ausgelöst.Widget erscheint nicht oder JS-Fehler beim Laden
Widget erscheint nicht oder JS-Fehler beim Laden
type="module" oder ein Bundler, der den Browser-Export des Pakets nicht korrekt auflöst.Lösung: Lade das Widget-Skript als Modul und stelle sicher, dass der Pfad auf dist/widget-browser.js zeigt:browser-Export-Bedingung aus dem Ribaunt-Paket auflöst. Sieh in der Dokumentation deines Frameworks nach, wie Export-Bedingungen konfiguriert werden, falls das Widget weg-tree-shaken wird oder nicht gefunden wird.verifySolution gibt in Serverless- oder Edge-Deployments immer false zurück
verifySolution gibt in Serverless- oder Edge-Deployments immer false zurück
local-Replay-Store lebt im Prozessspeicher. In Serverless-Umgebungen ist jeder Funktionsaufruf ein frischer Prozess, sodass Tokens, die in einem vorherigen Aufruf verbraucht wurden, für den nächsten unbekannt sind. Das führt dazu, dass der In-Memory-Store jede Einreichung als die erste behandelt — aber wenn zwei gleichzeitige Aufrufe rennen, könnten beide dasselbe Token konsumieren, oder keiner hält den Zustand lange genug, um vor Replays zu schützen.Lösung: Wechsle zu replayPrevention: 'remote' mit einem Redis- oder Valkey-Adapter, der atomare SET NX EX-Semantik verwendet:React-Wrapper wirft einen SSR-Fehler in Next.js
React-Wrapper wirft einen SSR-Fehler in Next.js
<ribaunt-widget>-Web-Komponente registriert sich mit ausschließlich browserseitigen APIs wie customElements und window. Diese sind während des serverseitigen Renderings nicht verfügbar.Lösung: Füge 'use client' am Anfang jeder Komponentendatei hinzu, die RibauntWidget importiert oder rendert:next/dynamic — der React-Wrapper von Ribaunt übernimmt das dynamische Importieren des Browser-Bundles bereits intern. Eine zweite Schicht dynamischen Imports kann diesen Mechanismus stören und doppeltes Laden oder Hydration-Mismatches verursachen.Debug-Logging aktivieren
Standardmäßig protokolliert Ribaunt Verifizierungs-Warnungen in der Konsole, wennNODE_ENV auf development gesetzt ist. In anderen Umgebungen sind Warnungen stumm, sofern du dich nicht aktiv dafür entscheidest. Verwende die Option debug, um die Konsolenausgabe explizit zu aktivieren, oder verwende onWarning für strukturiertes Logging, das in jeder Umgebung funktioniert.
NODE_ENV=development ist debug standardmäßig aktiviert — du musst es während der lokalen Entwicklung nicht explizit übergeben. Setze in der Produktion auf onWarning statt debug: true, um Anwendungsprotokolle nicht mit gering-aussagekräftigem Rauschen zu fluten.