SilentShield est une alternative aux CAPTCHA invisible et conforme au RGPD pour les applications React et Next.js. Vous chargez un script client léger, obtenez un jeton et le vérifiez sur le serveur avec le paquet @forge12interactive/silentshield-sdk-js et une seule clé API. Il n'y a ni cookies, ni suivi, ni données personnelles, et l'hébergement se fait par défaut exclusivement dans l'UE.

CAPTCHA invisible pour React & Next.js

Fonctionne avec toute application React ou Next.js grâce au script léger SilentShield : récupérez un nonce à l'envoi, vérifiez-le côté serveur avec @forge12interactive/silentshield-sdk-js. Invisible et conforme au RGPD.

Intégration CAPTCHA React

Developer Experience

Indépendant du framework — fonctionne avec toute application React ou Next.js
Script client léger — aucun paquet React lourd requis
Basé sur un nonce — invisible, sans interaction de l'utilisateur
@forge12interactive/silentshield-sdk-js pour la vérification côté serveur
Compatible avec App Router et Pages Router
Compatible avec TypeScript

Exemples de code

Intégrer le script client

<!-- Add to <head> with SRI for security -->
(function () {
  var KEY = "YOUR_API_KEY";
  var SITE = location.hostname;
  var V = "2025.09.1";
  var s = document.createElement('script');
  s.src = "https://api.silentshield.io/client.js?k=" + encodeURIComponent(KEY)
    + "&v=" + encodeURIComponent(V)
    + "&site=" + encodeURIComponent(SITE);
  s.async = true;
  s.crossOrigin = "anonymous";
  document.head.appendChild(s);
})();

Composant React

import React, { useState } from "react";

export default function ContactForm() {
  const [loading, setLoading] = useState(false);
  const [message, setMessage] = useState("");

  const handleSubmit = async (e) => {
    e.preventDefault();
    setLoading(true);

    try {
      // client.js injects a hidden behavior_nonce input into the form —
      // read it from the form data (there is no global SilentShield object).
      const formData = new FormData(e.currentTarget);
      const nonce = formData.get("behavior_nonce");

      // Verify on your backend
      const res = await fetch("/api/verify", {
        method: "POST",
        headers: { "Content-Type": "application/json" },
        body: JSON.stringify({ nonce }),
      });

      const data = await res.json();

      if (res.ok && data.success) {
        setMessage("Successfully verified!");
        // Process form submission
      } else {
        setMessage("Bot detected. Please try again.");
      }
    } catch (error) {
      console.error("Verification failed:", error);
      setMessage("Verification failed. Please try again.");
    } finally {
      setLoading(false);
    }
  };

  return (
    <form onSubmit={handleSubmit}>
      <input type="email" placeholder="Email" required />
      <button type="submit" disabled={loading}>
        {loading ? "Verifying..." : "Submit"}
      </button>
      {message && <p>{message}</p>}
    </form>
  );
}

Vérification côté serveur (Next.js)

// app/api/verify/route.ts
import { SilentShield } from "@forge12interactive/silentshield-sdk-js";

export async function POST(req: Request) {
  const { nonce } = await req.json();
  const result = await SilentShield.verifyNonce(nonce, process.env.SILENTSHIELD_API_KEY);
  const human = result.ok && result.verdict === "human" && result.confidence >= 0.7;

  if (!human) {
    return Response.json({ error: "Bot detected" }, { status: 403 });
  }

  // Human — process the form
  return Response.json({ success: true });
}

Comment SilentShield fonctionne dans React

SilentShield charge un petit script client qui exécute une vérification invisible pendant que l'utilisateur interagit avec votre formulaire. À la soumission, votre composant React ou Next.js envoie le jeton généré à votre backend, où vous le vérifiez avec le paquet @forge12interactive/silentshield-sdk-js. Les utilisateurs ne voient jamais d'énigme, et votre bundle reste léger car il n'y a aucun widget lourd à afficher.

Script client plus vérification serveur

Il n'y a aucun paquet web @silentshield/react distinct à installer — SilentShield fonctionne dans toute application React ou Next.js grâce au script client et à une vérification côté serveur. Vous ajoutez le script https://api.silentshield.io/client.js?k=YOUR_API_KEY, lisez le jeton dans votre composant et le confirmez auprès de https://api.silentshield.io/v1/verify en utilisant l'en-tête api-key depuis un route handler ou une route API.

Guide de configuration

Créez un compte et copiez votre clé API. Ajoutez le script client SilentShield à votre application et capturez le jeton lors de la soumission du formulaire. Installez @forge12interactive/silentshield-sdk-js sur votre serveur, créez le client avec votre clé API et appelez verify avec le jeton. Si le résultat est humain, traitez la requête ; sinon, rejetez-la.

Confidentialité et accessibilité par défaut

SilentShield ne stocke aucun cookie, n'effectue aucun suivi et ne collecte aucune donnée personnelle, de sorte que votre application reste conforme au RGPD. La vérification s'exécute par défaut sur une infrastructure exclusivement dans l'UE. La vérification invisible respecte la norme WCAG 2.1 AA, ce qui maintient vos formulaires utilisables pour les utilisateurs de clavier et de lecteur d'écran sans aucun défi visuel.

Intégrez React dès maintenant

Ajoutez le script, vérifiez avec @forge12interactive/silentshield-sdk-js — prêt en quelques minutes.

Questions fréquentes

Comment ajouter un CAPTCHA à une application React ?

Chargez le script client SilentShield `https://api.silentshield.io/client.js?k=YOUR_API_KEY` dans votre application React ou Next.js, obtenez un nonce à l'envoi et vérifiez-le sur votre backend à l'adresse `https://api.silentshield.io/v1/verify` à l'aide du SDK `@forge12interactive/silentshield-sdk-js`. Il n'existe pas de paquet web React distinct — le script client plus la vérification backend est le modèle.

Existe-t-il un paquet React SilentShield ?

Il n'existe pas de paquet web React séparé. Dans React et Next.js, vous ajoutez le script client `https://api.silentshield.io/client.js?k=YOUR_API_KEY` et vérifiez le `behavior_nonce` injecté sur votre backend — avec quelques lignes de fetch ou le paquet officiel `@forge12interactive/silentshield-sdk-js`. Un SDK React Native pour les applications mobiles est actuellement disponible sur demande (accès anticipé).

Comment SilentShield fonctionne-t-il avec Next.js ?

Dans Next.js, incluez le script client SilentShield dans vos pages, puis vérifiez le nonce côté serveur — dans un route handler ou une route API — avec le SDK `@forge12interactive/silentshield-sdk-js`, en appelant `https://api.silentshield.io/v1/verify` avec l'en-tête `api-key`. Cela protège les formulaires de façon invisible avec une seule clé API.

SilentShield prend-il en charge React Native ?

Un SDK React Native pour les applications mobiles est actuellement en accès anticipé — sur demande via [email protected]. La vérification backend fonctionne dès aujourd'hui avec `@forge12interactive/silentshield-sdk-js` ou un simple appel HTTP vers `https://api.silentshield.io/v1/verify`, bloquant les abus automatisés sans montrer de puzzle aux utilisateurs.

SilentShield est-il conforme au RGPD dans une application React ?

Oui. Quel que soit le framework, SilentShield héberge les données dans l'UE par défaut, ne pose aucun cookie, n'effectue aucun suivi et ne stocke que des données pseudonymisées. Votre frontend React charge un seul script client et votre backend vérifie le nonce — aucune donnée identifiant une personne n'est stockée.

SilentShield ajoute-t-il beaucoup de charge à une application React ?

Non. SilentShield charge un seul script client léger et n'a aucune image à télécharger. La vérification se fait grâce à des signaux comportementaux et un nonce de preuve de travail, contrôlé sur votre backend, sans appels de suivi tiers — il ajoute donc une charge minime à votre application React ou Next.js.