---
title: Schnellstart
---
# Schnellstart
Diese Anleitung hilft Ihnen, CaptchaLa CAPTCHA in 5 Minuten zu integrieren.
::: tip In 30 Sekunden in Aktion sehen
[demo-v1.captcha.la](https://demo-v1.captcha.la) — reines HTML + PHP, MIT-lizenziert, Quelltext auf jeder Seite einsehbar.
- [popup.html](https://demo-v1.captcha.la/popup.html) — Popup-Modus
- [float.html](https://demo-v1.captcha.la/float.html) — schwebendes Widget
- [bind.html](https://demo-v1.captcha.la/bind.html) — an Button binden
- [inline.html](https://demo-v1.captcha.la/inline.html) — Inline-Einbettung
- [server-token.html](https://demo-v1.captcha.la/server-token.html) — servergenerierter Token (Anti-Replay)
:::
## 1. Konto erstellen
Registrieren Sie sich kostenlos im Dashboard.
[Jetzt registrieren →](https://dash.captcha.la/register)
## 2. Anwendung anlegen
Legen Sie im Dashboard eine Anwendung an, um Ihren App Key zu erhalten.
## 3. SDK installieren
Wählen Sie Ihre bevorzugte Installationsmethode.
```html
```
```bash
# or via npm
npm install captchala
```
## 4. CAPTCHA initialisieren
Initialisieren Sie die CAPTCHA-Komponente auf Ihrer Seite.
```html
```
## 5. Serverseitige Validierung
Validieren Sie den Token auf Ihrem Server.
```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
Prüfen Sie stets, dass `data.valid === true` **und** dass `data.action` mit der erwarteten Szene übereinstimmt.
Pass-Tokens sind Einmal-Tokens; derselbe `pt_xxx` kann nicht zweimal validiert werden.
:::
## Servergenerierter-Token-Modus (für die Produktion empfohlen) {#server-token}
Für sensible Aktionen (Anmeldung, Registrierung, Bezahlung) empfehlen wir den servergenerierten Token-Flow: Ihr Backend fordert zunächst einen kurzlebigen server_token an, den der Browser anschließend zur Initialisierung des CAPTCHA verwendet. Dies verhindert Missbrauch durch einen geleakten app_key.
### Wann sollte er verwendet werden?
- Empfohlen: Registrierung, Anmeldung, Passwort-Zurücksetzen, Bezahlung, Punkte-Einlösung sowie jeder Endpoint, den ein Angreifer skripten kann.
- Optional: einfache öffentliche Formulare, Suchfelder und geringwertige Interaktionen, bei denen Komfort wichtiger ist.
### 1. Backend stellt server_token aus
Rufen Sie /v1/server/challenge/issue von Ihrem eigenen Server aus auf, unter Verwendung der Header X-App-Key und X-App-Secret. Geben Sie diese Header niemals an den Browser weiter.
```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 rendert CaptchaLa mit dem server_token
Übergeben Sie den Token an Ihre CaptchaLa-Komponente. Das SDK reicht ihn bei der Initialisierung der Challenge weiter.
```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));
```
### Sicherheitshinweise
- Geben Sie app_secret niemals in Frontend-Code, mobilen Apps oder öffentlichen Repositories preis. Es muss serverseitig bleiben.
- Aktivieren Sie im Dashboard "Servergenerierten Challenge-Token erforderlich", um jede Challenge ohne server_token abzulehnen.
- Halten Sie ttl kurz (Standard 300 s, max. 900 s) und bevorzugen Sie max_uses=1, um die Auswirkungen eines Token-Leaks zu minimieren.
## Nächste Schritte
- [Web-SDK](/de/web-sdk)
- [API-Referenz](/de/api-reference)