@deflectbot/deflect-sdk
v1.5.0
Published
SDK for deflect.bot - Use it for seamless captcha integration on any website.
Readme
Deflect SDK (Client-side)
Deflect is an advanced antibot engine that protects your site from bots on any scale.
Usage
See the documentation for how to use this SDK with the Deflect APIs.
Installation
yarn
yarn add @deflectbot/deflect-sdknpm
npm install --save @deflectbot/deflect-sdkCDN
Use @deflect-sdk@latest to always use the latest version, or specify a version with @[email protected].
<script src="https://cdn.jsdelivr.net/npm/@deflectbot/deflect-sdk@latest/dist/index.min.js"></script>Usage (instance-based)
The SDK uses lightweight clients so you can create multiple independent configs (one per actionId) without global state conflicts.
import Deflect, { DeflectConfig } from "@deflectbot/deflect-sdk";
const client = Deflect.createClient({
actionId: "<ACTION_ID>",
// optional
scriptUrl: "https://custom-host/main.js", // overrides script origin
prefetch: true, // default
extraArgs: { debug: true }, // appended as query params => &debug=true
} satisfies DeflectConfig);
const token = await client.getToken();Multiple clients on the same page
const loginClient = Deflect.createClient({ actionId: "login" });
const signupClient = Deflect.createClient({ actionId: "signup" });
const loginToken = await loginClient.getToken();
const signupToken = await signupClient.getToken();Form helper with an instance
<form action="/login" method="POST" onsubmit="return loginClient.injectToken(event)">
<input name="username" />
<input name="password" type="password" />
<button type="submit">Login</button>
</form>
<script type="module">
import Deflect from "https://cdn.jsdelivr.net/npm/@deflectbot/deflect-sdk@latest/dist/index.esm.js";
const loginClient = Deflect.createClient({ actionId: "login" });
window.loginClient = loginClient;
</script>injectToken(event) fetches a token, injects it as a hidden deflect_token input, and submits the form.
Legacy global (still available, but prefer clients)
The previous Deflect.configure/Deflect.getToken singleton still works for single-action setups, but the recommended approach is to create per-action clients as shown above.
