Documentation
Tout ce qu'il faut pour connecter AntiBotWall à votre application. Cette documentation décrit l'API actuellement disponible.
AntiBotWall est encore en développement. Testez en environnement de développement avant toute utilisation en production.
Démarrage rapide
L'API est exposée sur votre domaine Worker. Vérifiez qu'elle répond avant d'intégrer les routes.
curl https://antibotwall.reqeuss.com/healthOAuth
Les utilisateurs peuvent démarrer une connexion auprès d'un fournisseur pris en charge. Configurez les identifiants OAuth dans les secrets du Worker et ajoutez l'URL de callback exacte dans le portail du fournisseur.
/oauth/discord/start/oauth/google/start/oauth/github/start/oauth/epsilonsocial/startURL de callback : https://antibotwall.reqeuss.com/oauth/PROVIDER/callback. Pour Epsilon Social : https://antibotwall.reqeuss.com/oauth/epsilonsocial/callback. Le Worker tente de découvrir automatiquement les endpoints via https://epsilon.social/.well-known/openid-configuration. Cela nécessite des métadonnées OpenID Connect compatibles.
API CAPTCHA
Le défi arithmétique est volontairement simple et ne remplace pas un service anti-bot avancé. Le jeton de validation doit être vérifié côté serveur.
/captcha/challenge/captcha/verify/captcha/consumeconst challenge = await fetch('/captcha/challenge', {
method: 'POST',
headers: { 'content-type': 'application/json' },
body: JSON.stringify({})
}).then(r => r.json());Déploiement
Déployez le Worker avec Wrangler depuis le dossier du projet. Ajoutez les secrets OAuth via la CLI Wrangler, jamais dans le JavaScript du navigateur.
npm install
npx wrangler secret put DISCORD_CLIENT_ID
npx wrangler secret put DISCORD_CLIENT_SECRET
npm run deployStudio et intégration des sites
Ouvrez le Studio AntiBotWall après vous être connecté. Créez une intégration en renseignant son nom et son domaine, puis choisissez un seul service : embed de connexion OAuth ou CAPTCHA. Les réglages sont enregistrés dans Supabase. La clé secrète du site est affichée une seule fois : conservez-la dans les secrets de votre serveur, jamais dans le navigateur.
Vérification du domaine : créez à la racine du domaine le fichier /antibotwall-verification.txt contenant exactement le jeton affiché dans le Studio. Le fichier doit répondre en HTTPS avec un statut 200, sans redirection. Cliquez sur « Vérifier maintenant » ; le Studio réessaie automatiquement toutes les cinq minutes tant qu’il reste ouvert. Les widgets et les flux OAuth du site restent bloqués jusqu’à la vérification. Changer le domaine crée un nouveau jeton.
Le widget CAPTCHA est fourni dans une iframe hébergée par AntiBotWall. Il envoie un jeton temporaire à la page parente. Votre serveur doit appeler l'API de consommation avec ce jeton et la clé publique du site avant de continuer :
POST https://antibotwall.reqeuss.com/captcha/consume
Content-Type: application/json
{"token":"JETON_RECU","siteKey":"CLE_PUBLIQUE_DU_SITE"}La connexion des visiteurs est un flux OAuth distinct de la connexion au tableau de bord. Configurez une URL de retour HTTPS appartenant au domaine du site ; cette route reçoit un champ de formulaire token par POST. Vérifiez la signature HMAC-SHA-256, l'expiration et l'audience du jeton côté serveur, puis créez votre propre session. AntiBotWall ne crée pas automatiquement de session dans votre application.
import { createHmac, timingSafeEqual } from "node:crypto";
export function verifyAntiBotWallToken(token, siteSecret, siteKey) {
const [payload, signature] = String(token).split(".");
if (!payload || !signature) return null;
const expected = createHmac("sha256", siteSecret)
.update(payload).digest("base64url");
const a = Buffer.from(signature);
const b = Buffer.from(expected);
if (a.length !== b.length || !timingSafeEqual(a, b)) return null;
const claims = JSON.parse(Buffer.from(payload, "base64url").toString("utf8"));
if (claims.aud !== siteKey || claims.exp <= Math.floor(Date.now() / 1000)) return null;
return claims;
}Les identifiants OAuth Discord, GitHub, Google et Epsilon Social utilisés par le service doivent être configurés côté Worker. Testez tous les flux dans un environnement de développement avant la production.
Confidentialité
KV conserve des états temporaires avec expiration. L'API de base n'exige pas Supabase ni une base centrale des utilisateurs. Consultez la politique de confidentialité pour connaître les limites actuelles.