Flutter
Für Flutter bettet das Widget das EU CAPTCHA in eine WebView innerhalb der App ein und stellt eine Schnittstelle in Dart bereit.
Voraussetzungen
Die folgenden Voraussetzungen sind erfüllt:
| Voraussetzung | Wert |
|---|---|
| Flutter | ab Version 3.0 |
| Dart SDK | ab Version 3.0 |
| Betriebssystem | Android ab API-Ebene 19, iOS ab Version 13 |
| Zugangsdaten | Öffentlicher Sitekey aus der Ansicht Details |
Abhängigkeiten eintragen
Ergänzen Sie die Datei pubspec.yaml:
Kopieren Sie die Datei lib/eucaptcha.dart und das Verzeichnis assets/ in Ihr Projekt und tragen Sie die Dateien ein:
Plattformen einrichten
Ergänzen Sie unter Android die Datei android/app/src/main/AndroidManifest.xml:
Unter iOS ist keine weitere Einstellung erforderlich.
Widget einbinden
import 'eucaptcha.dart';
EuCaptcha(
sitekey: 'EUCAPTCHA_SITE_KEY',
theme: 'auto', // 'light', 'dark', or 'auto'
lang: 'en', // BCP 47 language code
onComplete: (response) {
// response is the token — submit to your server as "eu-captcha-response"
},
onExpire: (_) { /* CAPTCHA expired */ },
onError: (_) { /* error occurred */ },
)
Der Wert theme steuert die Darstellung mit light, dark und auto. Der Wert lang erwartet einen Sprachcode nach BCP 47. Ohne Angabe gelten auto und en.
Widget zurücksetzen
Verwenden Sie einen GlobalKey<EuCaptchaState>, um reset() aufzurufen:
final _captchaKey = GlobalKey<EuCaptchaState>();
EuCaptcha(key: _captchaKey, sitekey: '...', onComplete: ...)
// later:
_captchaKey.currentState?.reset();
Token prüfen
Senden Sie das Token nach dem Aufruf von onComplete an Ihren Server. Der Server prüft das Token:
POST https://api.eu-captcha.eu/v1/verify
Content-Type: application/json
{
"sitekey": "EUCAPTCHA_SITE_KEY",
"secret": "EUCAPTCHA_SECRET_KEY",
"client_ip": "<client IP>",
"client_token": "<token from widget>",
"client_user_agent": "<user-agent>"
}
Die Antwort lautet { "success": true, "train": false }.
Siehe Endpunkt /verify.