Prise en main

Créez un site, ajoutez le widget, vérifiez le jeton — le chemin le plus court vers une protection opérationnelle.

Documentation

Intégrez CaptchaCore à votre projet en 5 minutes.

1 Créer un site & des clés

  1. Connexion sur /admin
  2. Créer un nouveau site sous Sites (nom + domaine)
  3. Générer une paire de clés sous API-Keys
  4. Conserver en lieu sûr les clés cc_pub_... (publique) et cc_sec_... (secrète)

2 Intégrer le widget (frontend)

La clé publique (cc_pub_) est utilisée dans le navigateur.

<!-- In deinem HTML, vor </body> -->
<script src="https://src-eu.captchacore.eu/widget/captchacore-v2.min.js"
        data-service-url="https://api.captchacore.eu"
        data-site-key="cc_pub_DEIN_KEY"
        async defer></script>

<!-- Formular mit CaptchaCore -->
<form data-captchacore="interactive" method="post">
    <!-- Deine Formularfelder -->
    <div data-captchacore-widget></div>
    <button type="submit">Absenden</button>
</form>

3 Vérifier le token (backend)

La clé secrète (cc_sec_) est utilisée côté serveur.

POST https://api.captchacore.eu/api/v2/verify
Header: X-CaptchaCore-Key: cc_sec_DEIN_SECRET

Body:
{
    "token":     "<captchacore_token aus dem Formular>",
    "form_type": "register"
}

Response:
{
    "valid":      true,
    "decision":   "allow",        // allow | challenge | step_up | block
    "risk_score": 8,
    "confidence": 0.94,           // 0.0–1.0 Signalabdeckung
    "reasons":    ["pow_valid", "behavior_human_like", "ip_clean"],
    "step_up":    null             // Step-Up-Challenge falls noetig
}

Intégration HTML

Pour les sites statiques, projets PHP, Node.js ou tout autre backend.

Frontend

Le widget s'attache automatiquement à tous les formulaires portant l'attribut data-captchacore. Il insère un champ input caché captchacore_token.

Backend (n'importe quel langage)

# curl Beispiel
curl -X POST https://api.captchacore.eu/api/v2/verify \
  -H "X-CaptchaCore-Key: cc_sec_DEIN_SECRET" \
  -H "Content-Type: application/json" \
  -d '{"token":"TOKEN_AUS_FORMULAR","form_type":"contact"}'

# Antwort prüfen: valid=true UND action != "block"