---
title: Mula Pantas
---
# Mula Pantas
Panduan ini akan membantu anda mengintegrasikan CAPTCHA CaptchaLa dalam masa 5 minit.
::: tip Lihat ia berfungsi dalam 30 saat
[demo-v1.captcha.la](https://demo-v1.captcha.la) — HTML + PHP tulen, lesen MIT, view-source pada setiap halaman.
- [popup.html](https://demo-v1.captcha.la/popup.html) — mod popup
- [float.html](https://demo-v1.captcha.la/float.html) — widget terapung
- [bind.html](https://demo-v1.captcha.la/bind.html) — ikat pada butang
- [inline.html](https://demo-v1.captcha.la/inline.html) — benam dalam baris
- [server-token.html](https://demo-v1.captcha.la/server-token.html) — token diterbitkan pelayan (anti-replay)
:::
## 1. Daftar Akaun
Daftar akaun percuma di papan pemuka
[Daftar Sekarang →](https://dash.captcha.la/register)
## 2. Buat Aplikasi
Buat aplikasi di papan pemuka dan dapatkan App Key
## 3. Pasang SDK
Pilih kaedah pemasangan yang sesuai
```html
```
```bash
# or via npm
npm install captchala
```
## 4. Inisialisasi CAPTCHA
Inisialisasi komponen CAPTCHA dalam halaman
```html
```
## 5. Pengesahan Pelayan
Sahkan kesahihan Token di pelayan
```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": "" }
```
```json
{
"code": 0,
"data": {
"valid": true,
"action": "login",
"challenge_id": "ch_xxx",
"uid": null,
"risk_score": 12
}
}
```
::: warning
Always check `data.valid === true` **and** `data.action` matches the scene you expected.
Pass tokens are single-use; the same `pt_xxx` cannot be validated twice.
:::
## Mod Token Dikeluarkan Pelayan (disyorkan untuk pengeluaran) {#server-token}
Untuk tindakan sensitif (log masuk, pendaftaran, pembayaran) kami mengesyorkan aliran token yang dikeluarkan pelayan: backend anda meminta server_token jangka pendek dahulu, kemudian pelayar menggunakannya untuk memulakan CAPTCHA. Ini mencegah penyalahgunaan app_key yang bocor.
### Bila digunakan
- Disyorkan: pendaftaran, log masuk, tetapan semula kata laluan, pembayaran, tebus mata, dan mana-mana endpoint yang boleh diautomasikan penyerang.
- Pilihan: borang awam biasa, kotak carian, interaksi bernilai rendah.
### 1. Backend keluarkan server_token
Panggil /v1/server/challenge/issue dari pelayan anda sendiri, dengan header X-App-Key dan X-App-Secret. Jangan dedahkan header ini kepada pelayar.
```bash
# Server-side only — never call this from a browser
curl -X POST https://apiv1.captcha.la/v1/server/challenge/issue \
-H "X-App-Key: YOUR_APP_KEY" \
-H "X-App-Secret: YOUR_APP_SECRET" \
-d "action=login&ttl=300&max_uses=1&bind_ip=1.2.3.4"
# → { "code": 0, "data": { "server_token": "sct_...", "expires_in": 300 } }
```
### 2. Frontend paparkan CaptchaLa dengan server_token
Hantarkan token kepada komponen CaptchaLa. SDK akan menghantarnya ke inisialisasi pengesahan semasa inisialisasi.
```js
// Browser fetches the token from YOUR backend, not from CaptchaLa directly
const { serverToken } = await fetch('/api/captcha/issue').then(r => r.json());
Captchala.init({
appKey: 'YOUR_APP_KEY',
serverToken, // single-use, short-lived
product: 'popup',
action: 'login',
})
.appendTo('#captcha-container')
.onSuccess(res => submitForm(res.token));
```
### Nota keselamatan
- Jangan letak app_secret dalam kod frontend, aplikasi mudah alih, atau repositori awam. Ia mesti kekal di sisi pelayan.
- Aktifkan "Perlukan token cabaran dari pelayan" dalam papan pemuka untuk menolak cabaran tanpa server_token.
- Kekalkan ttl pendek (lalai 300s, maksimum 900s) dan utamakan max_uses=1.
## Langkah seterusnya
- [Web SDK](./web-sdk)
- [Rujukan API](./api-reference)