SilentShield je nevidljiva, usklađena s GDPR-om alternativa CAPTCHA-i za React i Next.js aplikacije. Učitavate laganu klijentsku skriptu, dobivate token i provjeravate ga na poslužitelju pomoću paketa @forge12interactive/silentshield-sdk-js i jednog API ključa. Nema kolačića, nema praćenja ni osobnih podataka, a hosting je prema zadanim postavkama isključivo u EU-u.

Nevidljivi CAPTCHA za React & Next.js

Radi s bilo kojom React ili Next.js aplikacijom putem laganog SilentShield skripta: pri slanju dohvatite nonce i provjerite ga na pozadini pomoću @forge12interactive/silentshield-sdk-js. Nevidljiv i usklađen s GDPR-om.

Integracija CAPTCHA u Reactu

Developer Experience

Neovisan o frameworku — radi s bilo kojom React ili Next.js aplikacijom
Lagana klijentska skripta — nije potreban težak React paket
Temeljen na nonceu — nevidljiv, bez interakcije korisnika
@forge12interactive/silentshield-sdk-js za provjeru na pozadini
Radi s App Routerom i Pages Routerom
Prilagođen TypeScriptu

Primjeri koda

Ugradnja klijentske skripte

<!-- 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);
})();

React komponenta

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>
  );
}

Provjera na pozadini (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 });
}

Kako SilentShield radi u Reactu

SilentShield učitava malu klijentsku skriptu koja izvodi nevidljivu provjeru dok korisnik komunicira s vašim obrascem. Prilikom slanja vaša React ili Next.js komponenta šalje generirani token na vaš backend, gdje ga provjeravate pomoću paketa @forge12interactive/silentshield-sdk-js. Korisnici nikada ne vide zagonetku, a vaš bundle ostaje lagan jer nema teškog widgeta za prikaz.

Klijentska skripta plus provjera na poslužitelju

Nema zasebnog web paketa @silentshield/react za instalaciju — SilentShield radi u bilo kojoj React ili Next.js aplikaciji putem klijentske skripte i provjere na strani poslužitelja. Dodajete skriptu https://api.silentshield.io/client.js?k=YOUR_API_KEY, čitate token u svojoj komponenti i potvrđujete ga u odnosu na https://api.silentshield.io/v1/verify koristeći zaglavlje api-key iz route handlera ili API rute.

Vodič za postavljanje

Izradite račun i kopirajte svoj API ključ. Dodajte klijentsku skriptu SilentShield u svoju aplikaciju i uhvatite token kada se obrazac pošalje. Instalirajte @forge12interactive/silentshield-sdk-js na svoj poslužitelj, izradite klijenta sa svojim API ključem i pozovite verify s tokenom. Ako je rezultat čovjek, obradite zahtjev; u suprotnom ga odbijte.

Privatnost i pristupačnost prema zadanim postavkama

SilentShield ne pohranjuje kolačiće, ne provodi praćenje i ne prikuplja osobne podatke, tako da vaša aplikacija ostaje usklađena s GDPR-om. Provjera se prema zadanim postavkama izvodi na infrastrukturi isključivo u EU-u. Nevidljiva provjera zadovoljava WCAG 2.1 AA, čime vaši obrasci ostaju upotrebljivi za korisnike tipkovnice i čitača zaslona bez ikakvog vizualnog izazova.

Integrirajte s Reactom sada

Dodajte skriptu, provjerite pomoću @forge12interactive/silentshield-sdk-js — spremno za nekoliko minuta.

Često postavljana pitanja

Kako dodati CAPTCHA u React aplikaciju?

Učitajte klijentsku skriptu SilentShield `https://api.silentshield.io/client.js?k=YOUR_API_KEY` u svoju React ili Next.js aplikaciju, dohvatite nonce pri slanju i provjerite ga na svojem backendu na `https://api.silentshield.io/v1/verify` koristeći `@forge12interactive/silentshield-sdk-js` SDK. Nema zasebnog React web paketa — klijentska skripta uz backend provjeru je obrazac.

Postoji li SilentShield React paket?

Ne postoji zaseban React web-paket. U Reactu i Next.js-u dodajete klijentsku skriptu `https://api.silentshield.io/client.js?k=YOUR_API_KEY` i ubačeni `behavior_nonce` provjeravate na svom backendu — s nekoliko redaka fetcha ili službenim paketom `@forge12interactive/silentshield-sdk-js`. React Native SDK za mobilne aplikacije trenutno je dostupan na zahtjev (rani pristup).

Kako SilentShield radi s Next.js-om?

U Next.js-u uključite klijentsku skriptu SilentShield u svoje stranice, zatim provjerite nonce na strani poslužitelja — u route handleru ili API ruti — s `@forge12interactive/silentshield-sdk-js` SDK-om, pozivajući `https://api.silentshield.io/v1/verify` sa zaglavljem `api-key`. Time se obrasci štite nevidljivo jednim jedinim API ključem.

Podržava li SilentShield React Native?

React Native SDK za mobilne aplikacije trenutno je u ranom pristupu — zatražite ga na [email protected]. Provjera na backendu već danas radi s `@forge12interactive/silentshield-sdk-js` ili jednostavnim HTTP pozivom na `https://api.silentshield.io/v1/verify`, blokirajući automatizirane zloupotrebe bez prikazivanja zagonetki korisnicima.

Je li SilentShield usklađen s GDPR-om u React aplikaciji?

Da. Bez obzira na framework, SilentShield prema zadanim postavkama hostira podatke u EU-u, ne postavlja kolačiće, ne provodi praćenje i pohranjuje samo pseudonimizirane podatke. Vaš React frontend učitava jednu klijentsku skriptu, a vaš backend provjerava nonce — ne pohranjuju se podaci koji identificiraju osobe.

Dodaje li SilentShield mnogo opterećenja React aplikaciji?

Ne. SilentShield učitava jednu laganu klijentsku skriptu i nema slikovnih datoteka za preuzimanje. Provjera se odvija putem signala ponašanja i proof-of-work noncea, provjerenog na vašem backendu, bez poziva za praćenje trećih strana — pa dodaje minimalno opterećenje vašoj React ili Next.js aplikaciji.