Skip to content

Web SDK

Web SDK поддерживает все современные браузеры с несколькими способами интеграции.

Посмотрите работу за 30 секунд

demo-v1.captcha.la — чистый HTML + PHP, лицензия MIT, исходный код доступен на каждой странице.

  • popup.html — режим всплывающего окна
  • float.html — плавающий виджет
  • bind.html — привязка к кнопке
  • inline.html — встраивание inline
  • server-token.html — Token, выданный сервером (защита от повторов)

Быстрый старт

html
<!-- 1. Load via CDN (or npm install captchala) -->
<script src="https://cdn.captcha-cdn.net/captchala-loader.js"></script>

<button id="login-btn">Sign in</button>

<script>
loadCaptchala(function () {
  Captchala.init({
    appKey: 'YOUR_APP_KEY',
    product: 'bind',
    action: 'login',
    lang: 'auto',
  })
  .onSuccess(res => sendToBackend(res.token))
  .onError(err => console.error(err.message))
  .bindTo('#login-btn');
});
</script>

Установка

CDN

html
<!-- Recommended: auto-fallback loader, ~6 KB gzip -->
<script src="https://cdn.captcha-cdn.net/captchala-loader.js"></script>

NPM

bash
npm install captchala
# or framework wrappers
npm install @captcha-la/vue
npm install @captcha-la/react
js
import Captchala from 'captchala';
import 'captchala/dist/captchala.css';

Режимы

Режим Popup

js
Captchala.init({ appKey: 'YOUR_APP_KEY', product: 'popup', action: 'login' })
  .bindTo('#login-btn')
  .onSuccess(res => sendToBackend(res.token));

Режим Float

js
Captchala.init({ appKey: 'YOUR_APP_KEY', product: 'float', action: 'browse' })
  .appendTo('#captcha-container')
  .onSuccess(res => sendToBackend(res.token));

Режим Bind

js
Captchala.init({ appKey: 'YOUR_APP_KEY', product: 'bind', action: 'login' })
  .bindTo('#submit-button')
  .onSuccess(res => submitForm(res.token));   // fires only after challenge passes

Режим Embed

js
Captchala.init({ appKey: 'YOUR_APP_KEY', product: 'embed', action: 'register' })
  .appendTo('#captcha-container')
  .onSuccess(res => sendToBackend(res.token));

Общие параметры

ПараметрТипПо умолчаниюОписание
appKeystringКлюч приложения (обязательно)
productstringpopupРежим отображения: popup
actionstringdefaultБизнес-сценарий (например login, register, pay). Сервер применяет разные политики безопасности для каждого сценария.
langstringautoBCP-47 тег (например en, ja, pt-BR) или auto, чтобы следовать navigator.language. См. Поддерживаемые языки — 54 локали.
serverTokenstringОдноразовый Token (sct_xxx), выданный вашим сервером. Настоятельно рекомендуется в production — предотвращает неограниченное обновление запросов.
onServerTokenExpired() => Promise<string>Вызывается при истечении serverToken; верните новый, чтобы SDK мог продолжить без прерывания потока.
enableVoicebooleantrueПоказать пункт аудио-CAPTCHA (доступность для пользователей с нарушением зрения).

Серверная проверка

После onSuccess отправьте res.token (префикс pt_) на ваш backend, затем проверьте его на стороне сервера:

bash
POST https://apiv1.captcha.la/v1/validate
X-App-Key: YOUR_APP_KEY
X-App-Secret: YOUR_APP_SECRET
Content-Type: application/json

{ "pass_token": "<token>", "client_ip": "<end-user IP>" }

См. Справочник API для полного endpoint проверки.

MIT-licensed examples · CaptchaLa is operated independently