CAPTCHA inviżibbli għal React & Next.js

Pakkett NPM b'appoġġ TypeScript, React Hooks API u kompatibbiltà SSR ta' Next.js. Biss 3KB gzipped.

Integrazzjoni CAPTCHA React

Esperjenza tal-Iżviluppatur

TypeScript nattiv – sigurtà sħiħa tat-tipi
React Hooks API – Hook useSilentShield()
Kompatibbli ma' Next.js SSR – jaħdem ma' App Router
Daqs tal-bundle: biss 3KB gzipped
Tree-shakeable – biss dak li għandek bżonn
Żero dipendenzi – bla kodiċi żejda

Eżempji tal-kodiċi

Installazzjoni

npm install @silentshield/react

React Hook API

import { useSilentShield } from '@silentshield/react';

function ContactForm() {
  const { verify, isVerifying } = useSilentShield({
    siteKey: 'YOUR_SITE_KEY',
  });

  const handleSubmit = async (e: FormEvent) => {
    e.preventDefault();
    const token = await verify();

    // Send token to backend
    await fetch('/api/contact', {
      method: 'POST',
      body: JSON.stringify({ ...formData, token }),
    });
  };

  return (
    <form onSubmit={handleSubmit}>
      {/* Your form fields */}
      <button disabled={isVerifying}>
        Submit
      </button>
    </form>
  );
}

Next.js App Router

// app/api/contact/route.ts
import { verifySilentShield } from '@silentshield/node';

export async function POST(req: Request) {
  const { token, ...data } = await req.json();

  const result = await verifySilentShield({
    secret: process.env.SILENTSHIELD_SECRET!,
    token,
  });

  if (!result.success) {
    return Response.json(
      { error: 'Bot detected' },
      { status: 403 }
    );
  }

  // Process form data...
}

Mudell Provider

import { SilentShieldProvider } from '@silentshield/react';

function App() {
  return (
    <SilentShieldProvider siteKey="YOUR_SITE_KEY">
      <MyApp />
    </SilentShieldProvider>
  );
}

Integra ma' React issa

npm install @silentshield/react – lest f'5 minuti.