@trustsig/sdk
v1.2.2
Published
TrustSig SDK for Node.js, Edge, and browser environments
Maintainers
Readme
TrustSig SDK
Node.js, Edge, and React SDK for TrustSig bot protection and risk verification.
This repository is an NPM workspace with isolated packages. Backend cryptography is not bundled into client applications, and frontend frameworks are not required on backend edge workers.
Packages
| Package | Environment | Purpose |
| --- | --- | --- |
| @trustsig/react | Browser / SSR | React Context Provider and hooks. |
| @trustsig/client | Browser | Vanilla JavaScript DOM token generator. |
| @trustsig/server | Node.js / Edge | Cryptography and API verification. |
| @trustsig/types | Shared | TypeScript interfaces. |
1. Client-Side (React/Next.js)
npm install @trustsig/reactSetup Provider
import { TrustSigProvider } from '@trustsig/react';
export default function RootLayout({ children }) {
return (
<TrustSigProvider siteKey="YOUR_PUBLIC_KEY" interceptRequests={true}>
{children}
</TrustSigProvider>
);
}Usage
import { useTrustSig } from '@trustsig/react';
export function LoginForm() {
const { getResponse } = useTrustSig();
const handleSubmit = async (e) => {
e.preventDefault();
const token = await getResponse();
await fetch('/api/login', {
method: 'POST',
headers: { 'X-TrustSig-Response': token || '' },
body: JSON.stringify({ email: "[email protected]" })
});
};
return (
<form onSubmit={handleSubmit}>
<button type="submit">Login</button>
</form>
);
}2. Client-Side (Vanilla JS / Vue)
npm install @trustsig/clientimport { TrustSigClient } from '@trustsig/client';
const client = new TrustSigClient({
siteKey: "YOUR_PUBLIC_KEY"
});
await client.load();
const token = await client.getResponse();3. Server-Side (Verification)
npm install @trustsig/serverimport { TrustSig } from '@trustsig/server';
const ts = new TrustSig({
secretKey: process.env.TRUSTSIG_SECRET_KEY
});
const token = request.headers.get('X-TrustSig-Response');
const resultLocal = ts.verifyLocal(token);
if (resultLocal.action === 'BLOCK') {
throw new Error("Access Denied");
}
const resultRemote = await ts.verifyRemote(token);
if (resultRemote.action === 'BLOCK') {
throw new Error("Access Denied");
}