--- 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)