ribaunt/widget-react kümmert sich automatisch um SSR-Guards, indem er die ausschließlich im Browser laufende Web-Komponente dynamisch auf dem Client importiert. Füge 'use client' zu deiner Komponentendatei hinzu, importiere RibauntWidget, und schon kann es losgehen – keine zusätzliche Konfiguration erforderlich.
Einrichtung der Client-Komponente
Erstelle eine Client-Komponente und fügeRibauntWidget ein. Da der Wrapper den dynamischen Import intern handhabt, musst du ihn nicht in next/dynamic einpacken.
NICHT in
next/dynamic einpacken – der ribaunt/widget-react-Wrapper kümmert sich bereits intern um den dynamischen Import. Ein zusätzlicher next/dynamic-Aufruf ist unnötig und kann zu doppeltem Laden führen.API-Routen
Die oben gezeigte Client-Komponente ruft/api/captcha/challenge und /api/captcha/verify auf. Du musst diese serverseitigen Endpunkte erstellen, um Challenges zu generieren und Lösungen zu validieren. Die vollständige Route-Handler-Implementierung findest du in der Next.js-Server-Anleitung.
Wichtige Überlegungen
- Verwende immer
'use client'–RibauntWidgetwird im Browser gerendert und basiert auf Browser-APIs. - Verwende
next/dynamicnicht – der Wrapper handhabt den dynamischen Import von selbst; das Hinzufügen vonnext/dynamicist redundant. - Lege
RIBAUNT_SECRETnicht überNEXT_PUBLIC_offen – das Secret muss ausschließlich serverseitig bleiben. - Verwende HTTPS oder localhost – das Lösen im Browser hängt von der Web Crypto API ab, die auf sichere Kontexte beschränkt ist. Einfache lokale Netzwerk-HTTP-URLs (z. B.
http://192.168.x.x) funktionieren nicht. - Für Serverless- oder Edge-Deployments – der Standard-Wiederholungsschutz nutzt prozesslokalen Speicher, der nicht zwischen Serverless-Instanzen geteilt wird. Setze
replayPrevention: 'remote'mit einem atomaren verteilten Store, um Replay-Angriffe in diesen Umgebungen zu verhindern.