Skip to content

Web SDK ​

Web SDK hỗ trợ mọi trình duyệt hiện đại với nhiều cách tích hợp.

Xem nó hoạt động trong 30 giây

demo-v1.captcha.la — HTML + PHP thuần, giấy phép MIT, có thể view-source mọi trang.

Bắt đầu nhanh ​

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>

Cài đặt ​

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';

Các chế độ ​

Chế độ popup ​

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

Chế độ nổi ​

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

Chế độ 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

Chế độ nhúng ​

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

Tùy chọn phổ biến ​

Tham sốKiểuMặc địnhMô tả
appKeystring—Application Key (bắt buộc)
productstringpopupChế độ hiển thị: popup
actionstringdefaultNgữ cảnh nghiệp vụ (ví dụ: login, register, pay). Server áp dụng chính sách bảo mật khác nhau theo từng scene.
langstringenNgôn ngữ được hỗ trợ: zh-CN / zh-TW / en / ja / ko / ms / vi / id
serverTokenstring—Token dùng một lần (sct_xxx) do server của bạn cấp. Rất nên dùng trong production để tránh lạm dụng refresh challenge không giới hạn.
onServerTokenExpired() => Promise<string>—Được gọi khi serverToken hết hạn; trả về token mới để SDK tiếp tục mà không làm gián đoạn luồng.
enableVoicebooleantrueHiển thị điểm vào audio captcha (hỗ trợ trợ năng cho người khiếm thị).

Xác thực phía máy chủ ​

After onSuccess, send res.token (prefix pt_) to your own backend, then validate it server-side:

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

{ "pass_token": "<token>" }

Xem Tham chiếu API để biết endpoint xác thực đầy đủ.

MIT-licensed examples · CaptchaLa is operated independently