SilentShield on näkymätön, GDPR-yhteensopiva CAPTCHA-vaihtoehto React- ja Next.js-sovelluksille. Lataat kevyen asiakasskriptin, saat tunnisteen ja vahvistat sen palvelimella @forge12interactive/silentshield-sdk-js-paketilla ja yhdellä API-avaimella. Evästeitä, seurantaa tai henkilötietoja ei ole, ja isännöinti tapahtuu oletusarvoisesti vain EU:ssa.

Näkymätön CAPTCHA — React & Next.js

Toimii minkä tahansa React- tai Next.js-sovelluksen kanssa kevyen SilentShield-skriptin avulla: nouda nonce lähetettäessä ja vahvista se taustajärjestelmässä @forge12interactive/silentshield-sdk-js-paketilla. Näkymätön ja GDPR-yhteensopiva.

React-CAPTCHA-integraatio

Developer Experience

Kehysriippumaton — toimii minkä tahansa React- tai Next.js-sovelluksen kanssa
Kevyt asiakasskripti — ei raskasta React-pakettia
Nonce-pohjainen — näkymätön, ei käyttäjän vuorovaikutusta
@forge12interactive/silentshield-sdk-js taustajärjestelmän vahvistukseen
Toimii App Routerin ja Pages Routerin kanssa
TypeScript-ystävällinen

Koodiesimerkit

Upota asiakasskripti

<!-- 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-komponentti

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

Taustajärjestelmän vahvistus (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 });
}

Näin SilentShield toimii Reactissa

SilentShield lataa pienen asiakasskriptin, joka suorittaa näkymättömän tarkistuksen käyttäjän ollessa vuorovaikutuksessa lomakkeesi kanssa. Lähetettäessä React- tai Next.js-komponenttisi lähettää luodun tunnisteen taustajärjestelmääsi, jossa vahvistat sen @forge12interactive/silentshield-sdk-js-paketilla. Käyttäjät eivät koskaan näe pulmaa, ja bundlesi pysyy kevyenä, koska raskasta vimpainta ei tarvitse renderöidä.

Asiakasskripti plus palvelinvahvistus

Erillistä @silentshield/react-verkkopakettia ei tarvitse asentaa — SilentShield toimii missä tahansa React- tai Next.js-sovelluksessa asiakasskriptin ja palvelinpuolen vahvistuksen kautta. Lisäät skriptin https://api.silentshield.io/client.js?k=YOUR_API_KEY, luet tunnisteen komponentissasi ja vahvistat sen osoitetta https://api.silentshield.io/v1/verify vasten käyttäen api-key-otsaketta route handlerista tai API-reitistä.

Käyttöönoton läpikäynti

Luo tili ja kopioi API-avaimesi. Lisää SilentShield-asiakasskripti sovellukseesi ja ota tunniste talteen, kun lomake lähetetään. Asenna @forge12interactive/silentshield-sdk-js palvelimellesi, luo asiakas API-avaimellasi ja kutsu verify tunnisteella. Jos tulos on ihminen, käsittele pyyntö; muuten hylkää se.

Yksityisyys ja saavutettavuus oletuksena

SilentShield ei tallenna evästeitä, ei suorita seurantaa eikä kerää henkilötietoja, joten sovelluksesi pysyy GDPR-yhteensopivana. Vahvistus suoritetaan oletusarvoisesti vain EU:n infrastruktuurissa. Näkymätön tarkistus täyttää WCAG 2.1 AA -tason, mikä pitää lomakkeesi käytettävinä näppäimistön ja ruudunlukijan käyttäjille ilman mitään visuaalista haastetta.

Integroi Reactiin nyt

Lisää skripti, vahvista @forge12interactive/silentshield-sdk-js-paketilla — valmis minuuteissa.

Usein kysytyt kysymykset

Miten lisään CAPTCHAN React-sovellukseen?

Lataa SilentShieldin asiakasskripti `https://api.silentshield.io/client.js?k=YOUR_API_KEY` React- tai Next.js-sovelluksessasi, hae nonce lähetyksen yhteydessä ja vahvista se taustajärjestelmässäsi osoitteessa `https://api.silentshield.io/v1/verify` käyttäen `@forge12interactive/silentshield-sdk-js`-SDK:ta. Erillistä React-verkkopakettia ei ole — asiakasskripti sekä taustajärjestelmän tarkistus on käytäntö.

Onko SilentShieldillä React-paketti?

Erillistä Reactin web-pakettia ei ole. Reactissa ja Next.js:ssä lisäät asiakasskriptin `https://api.silentshield.io/client.js?k=YOUR_API_KEY` ja varmistat injektoidun `behavior_nonce`-arvon backendissäsi — muutamalla rivillä fetchiä tai virallisella paketilla `@forge12interactive/silentshield-sdk-js`. React Native -SDK mobiilisovelluksille on tällä hetkellä saatavilla pyynnöstä (early access).

Miten SilentShield toimii Next.js:n kanssa?

Next.js:ssä sisällytät SilentShieldin asiakasskriptin sivuillesi ja vahvistat sitten noncen palvelinpuolella — reitityskäsittelijässä tai API-reitissä — `@forge12interactive/silentshield-sdk-js`-SDK:lla, joka kutsuu osoitetta `https://api.silentshield.io/v1/verify` otsakkeella `api-key`. Näin lomakkeet suojataan näkymättömästi yhdellä API-avaimella.

Tukeeko SilentShield React Nativea?

React Native -SDK mobiilisovelluksille on tällä hetkellä early access -vaiheessa — pyydä se osoitteesta [email protected]. Backend-varmistus toimii jo nyt paketilla `@forge12interactive/silentshield-sdk-js` tai yksinkertaisella HTTP-kutsulla osoitteeseen `https://api.silentshield.io/v1/verify`, ja se estää automaattisen väärinkäytön näyttämättä käyttäjille pulmatehtäviä.

Onko SilentShield GDPR-yhteensopiva React-sovelluksessa?

Kyllä. Kehyksestä riippumatta SilentShield isännöi tiedot oletuksena EU:ssa, ei aseta evästeitä, ei tee seurantaa ja tallentaa vain pseudonymisoituja tietoja. React-käyttöliittymäsi lataa yhden asiakasskriptin ja taustajärjestelmäsi vahvistaa noncen — henkilön tunnistavia tietoja ei tallenneta.

Lisääkö SilentShield paljon kuormitusta React-sovellukseen?

Ei. SilentShield lataa yhden kevyen asiakasskriptin, eikä sillä ole ladattavia kuvatiedostoja. Vahvistus tapahtuu käyttäytymissignaalien ja proof-of-work-noncen avulla, tarkistettuna taustajärjestelmässäsi, ilman kolmansien osapuolten seurantakutsuja — joten se lisää minimaalisen kuormituksen React- tai Next.js-sovellukseesi.