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 müssen erfüllt sein:
| 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.
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.