Skip to content

Commit 07c1907

Browse files
committed
docs: server-driven captchaType
The captcha type is now configured in the Prosopo portal per site key, not as a client-side data-captcha-type attribute / render-option prop. Update captcha-types.mdx + invisible-captcha.mdx to explain the new flow and patch stale references in client-side-rendering.mdx + faq.mdx. English versions are updated in-place. The other five language variants (de/es/fr/it/pt-br) are ported with i18nReady: false on the changed pages so translators can revisit.
1 parent 4bfc85f commit 07c1907

24 files changed

Lines changed: 716 additions & 888 deletions
Lines changed: 29 additions & 34 deletions
Original file line numberDiff line numberDiff line change
@@ -1,89 +1,84 @@
11
---
2-
title: "CAPTCHA-Typen"
3-
description: "Stellen Sie verschiedene CAPTCHA-Typen bereit, indem Sie `captchaType` auf `frictionless`, `pow` oder `image` setzen."
4-
i18nReady: true
2+
title: CAPTCHA Types
3+
description: Choose between frictionless, pow, image, or puzzle CAPTCHA challenges. The type is configured in the Prosopo portal — the widget always asks the server which to render.
4+
i18nReady: false
55
---
66
import {Image} from 'astro:assets';
77
import ProcaptchaGIF from '~/assets/procaptcha-pow.gif';
88
import ImageCaptcha from '~/assets/image-captcha.png';
99
import PoWSettings from '~/assets/pow-settings.png';
1010
import ImageSettings from '~/assets/image-settings.png';
1111

12-
Stellen Sie **verschiedene** CAPTCHA-Typen bereit, indem Sie `captchaType` auf `frictionless`, `pow` oder `image` setzen.
12+
Procaptcha supports four CAPTCHA types: `frictionless`, `pow`, `image`, and `puzzle`. The type is configured **per site key in the [Prosopo portal](https://portal.prosopo.io)** — the widget itself does not pick the type. On every challenge the widget calls the server, and the server returns the type to render based on your site-key settings.
1313

1414
## Frictionless CAPTCHA
1515

16-
Die standardmäßige `frictionless`-Funktion von Procaptcha erkennt dynamisch, ob der Benutzer einen normalen Browser oder automatisierte,
17-
headless Browser wie [playwright](https://playwright.dev/) oder [selenium](https://www.selenium.dev/) verwendet. Wenn der Benutzer
18-
wahrscheinlich ein Bot ist, wird dem Benutzer eine Bild-CAPTCHA-Herausforderung präsentiert. Wenn der Benutzer wahrscheinlich ein *Mensch* ist, wird
19-
dem Benutzer *keine* Bild-CAPTCHA-Herausforderung präsentiert und stattdessen wird eine einfache, unsichtbare Proof of Work
20-
(PoW)-Herausforderung gelöst.
16+
Procaptcha's default `frictionless` type dynamically detects whether the user is using a normal browser or an automated, headless browser such as [Playwright](https://playwright.dev/) or [Selenium](https://www.selenium.dev/). If the user is likely to be a bot, the server returns an **image** challenge. If the user is likely to be a *human*, the server returns an invisible **Proof of Work** challenge.
17+
18+
In other words, `frictionless` is a routing decision made by the server: it looks at the bot score, access policies, and other signals, then picks one of `image`, `pow`, or `puzzle` for that specific request.
2119

2220
## Proof of Work (PoW) CAPTCHA
2321

24-
Eine Proof of Work (`pow`) CAPTCHA-Herausforderung erfordert, dass der Benutzer ein Rechenpuzzle löst, bevor das Formular übermittelt wird. Es ist für Menschen einfach zu lösen, aber rechnerisch teuer für Bots.
22+
A Proof of Work (`pow`) CAPTCHA challenge requires the user's browser to solve a computational puzzle before submitting the form. It is easy for humans to solve but computationally expensive for bots.
2523

2624
<Image src={ProcaptchaGIF} alt={'prosopo procaptcha pow captcha challenge'} style="margin: 20px auto;"/>
2725

28-
Der Proof of Work CAPTCHA-Typ untersucht nicht die Browserumgebung des Benutzers, verwenden Sie dafür `frictionless` (siehe oben).
26+
The PoW type does not interrogate the user's browser environment — use `frictionless` if you want that.
2927

30-
## Bild-CAPTCHA
28+
## Image CAPTCHA
3129

32-
Eine Bild-CAPTCHA-Herausforderung erfordert, dass der Benutzer das/die richtige(n) Bild(er) auswählt, das/die der gegebenen Aufforderung entspricht/entsprechen.
30+
An image CAPTCHA challenge requires the user to select the correct image(s) that match the given prompt.
3331

3432
<Image
3533
src={ImageCaptcha}
3634
alt="prosopo procaptcha image captcha challenge"
3735
style="margin: 0 auto;"
3836
/>
3937

40-
Der Bild-CAPTCHA-Typ untersucht nicht die Browserumgebung des Benutzers, verwenden Sie dafür `frictionless` (siehe oben).
41-
42-
## Typ implizit setzen
38+
The Image type does not interrogate the user's browser environment — use `frictionless` if you want that.
4339

44-
### 1. Setzen Sie den Typ in der Widget-Konfiguration
40+
## Puzzle CAPTCHA
4541

46-
Hier setzen wir `captchaType` auf Proof-of-Work `pow`.
42+
A puzzle CAPTCHA challenge requires the user to drag a piece into a target slot. It does not interrogate the user's browser environment — use `frictionless` if you want that.
4743

48-
```html
49-
<div class="procaptcha" data-sitekey="your_site_key" data-captcha-type="pow"></div>
50-
```
44+
## Configuring the CAPTCHA type
5145

52-
### 2. Setzen Sie den Typ im Portal
46+
The CAPTCHA type is configured **per site key** in the Prosopo portal. The widget on your page does not select the type — it always asks the server, and the server replies with the configured type (or, when configured as `frictionless`, with whichever type the decision machine selected for that request).
5347

54-
Navigieren Sie zum [Prosopo Portal](https://portal.prosopo.io) und aktualisieren Sie den CAPTCHA-Typ in den Einstellungen auf `pow`.
55-
56-
<Image
57-
src={PoWSettings}
58-
alt="prosopo pow setting"/>
48+
### 1. Add the widget to your page
5949

60-
## Typ explizit setzen
50+
Whether you choose `frictionless`, `pow`, `image`, or `puzzle`, your HTML/JS stays the same:
6151

62-
### 1. Setzen Sie den Typ in der Widget-Konfiguration
52+
```html
53+
<div class="procaptcha" data-sitekey="your_site_key"></div>
54+
```
6355

64-
Hier setzen wir `captchaType` auf Bild `image`.
56+
Or with the explicit render API:
6557

6658
```javascript
6759
document.getElementById('procaptcha-script').addEventListener('load', function () {
6860
function onCaptchaVerified(output) {
6961
console.log('Captcha verified, output: ' + JSON.stringify(output))
7062
}
71-
// Get the Element using elementId
7263
const captchaContainer = document.getElementById('procaptcha-container')
7364
window.procaptcha.render(captchaContainer, {
7465
siteKey: 'YOUR_SITE_KEY',
7566
theme: 'dark',
7667
callback: onCaptchaVerified,
77-
captchaType: 'image', // `pow` or leave blank for `frictionless`
7868
})
7969
})
8070
```
8171

82-
### 2. Setzen Sie den Typ im Portal
72+
### 2. Set the type in the portal
73+
74+
Navigate to the [Prosopo portal](https://portal.prosopo.io) and update the CAPTCHA type in the site key's settings. Pick `frictionless`, `pow`, `image`, or `puzzle`.
8375

84-
Navigieren Sie zum [Prosopo Portal](https://portal.prosopo.io) und aktualisieren Sie den CAPTCHA-Typ in den Einstellungen auf `image`.
76+
<Image
77+
src={PoWSettings}
78+
alt="prosopo pow setting"/>
8579

8680
<Image
8781
src={ImageSettings}
8882
alt="prosopo image setting"/>
8983

84+
To use a different type for a different surface (for example, `pow` on one page and `image` on another), create a separate site key for each surface and set its type independently.

src/content/docs/de/basics/client-side-rendering.mdx

Lines changed: 16 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
---
22
title: "Clientseitiges Rendering"
33
description: "Rendern Sie das Procaptcha Widget auf Ihrer Website mit der Procaptcha JavaScript-Ressource."
4-
i18nReady: true
4+
i18nReady: false
55
---
66

77
Zuerst müssen Sie die Procaptcha JavaScript-Ressource irgendwo in Ihrer HTML-Seite einbinden. Das `<script>` muss
@@ -113,7 +113,6 @@ folgenden Felder enthalten:
113113
| siteKey | string | Der sitekey Ihrer Anwendung / Website. Dies ist erforderlich. ||
114114
| callback | string or function | Der Name der Window-Funktion oder eine Funktion, die aufgerufen wird, wenn das CAPTCHA verifiziert wurde. ||
115115
| theme | string | Das Theme des CAPTCHA-Widgets. Der Standard ist `light`. Die andere Option ist `dark`. ||
116-
| captchaType | string | Der Typ des zu rendernden CAPTCHA. Der Standard ist `frictionless`. Andere Optionen sind `image`, `pow`. ||
117116
| chalexpired-callback | string or function | Der Name der Window-Funktion oder eine Funktion, die aufgerufen wird, wenn die CAPTCHA-Herausforderung abläuft. ||
118117
| error-callback | string or function | Der Name der Window-Funktion oder eine Funktion, die aufgerufen wird, wenn ein Fehler auftritt. ||
119118
| close-callback | string or function | Der Name der Window-Funktion oder eine Funktion, die aufgerufen wird, wenn das CAPTCHA geschlossen wird. ||
@@ -139,7 +138,21 @@ und die Callback-Funktion am Window-Objekt definieren.
139138
<div class="procaptcha" data-sitekey="your_site_key" data-callback="yourCallbackFunction"></div>
140139
```
141140

142-
### `captchaType`
141+
### CAPTCHA Type
142+
143+
The CAPTCHA type is configured **per site key in the [Prosopo portal](https://portal.prosopo.io)** — the widget itself does not select the type, and there is no client-side option to set it. On every challenge the widget asks the server, and the server returns the type to render based on the site-key settings.
144+
145+
Available types:
146+
147+
| Type | Description |
148+
| -------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
149+
| `frictionless` | The default CAPTCHA type. The server inspects the request and serves the lightest challenge that's safe — typically an invisible [Proof of Work challenge](https://en.wikipedia.org/wiki/Proof_of_work) for likely humans, and an image, pow, or puzzle challenge when the request looks suspicious. |
150+
| `pow` | The user's browser solves a cryptographic puzzle. Easy for humans, computationally expensive for bots in volume. |
151+
| `image` | The user selects images that match a prompt. The familiar reCAPTCHA-style challenge. |
152+
| `puzzle` | The user drags a puzzle piece into a target slot. |
153+
154+
For full details see [CAPTCHA Types](/de/basics/captcha-types/).
155+
143156

144157
Sie können beim Rendern der Procaptcha-Komponente jeden der folgenden CAPTCHA-Typen implementieren:
145158

src/content/docs/de/basics/faq.mdx

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
---
22
title: "Häufig gestellte Fragen"
33
description: "Häufige Fragen und Antworten zu Procaptcha."
4-
i18nReady: true
4+
i18nReady: false
55
---
66

77
### Was bedeutet `Site Key not Registered`?
@@ -18,10 +18,9 @@ Dieser Fehler tritt auf, wenn die Domain des sitekey nicht mit der Domain der We
1818
verwendet wird. Um diesen Fehler zu beheben, stellen Sie sicher, dass die Domain des sitekey mit der Domain der Website übereinstimmt, indem Sie
1919
sich beim [Prosopo Portal](https://portal.prosopo.io) anmelden und die Domain aktualisieren.
2020

21-
### Was bedeutet `Incorrect CAPTCHA type`?
22-
Dieser Fehler tritt auf, wenn der [CAPTCHA-Typ](/de/basics/captcha-types) nicht korrekt gesetzt ist. Der Standard-`captchaType` ist
23-
`frictionless`. Wenn Sie `pow` oder `image` verwenden möchten, müssen Sie Ihren `captchaType` in der Widget-Konfiguration auf `pow`
24-
oder `image` setzen. Sie müssen auch Ihre [Portaleinstellungen](https://portal.prosopo.io) entsprechend aktualisieren.
21+
### What does `Incorrect CAPTCHA type` mean?
22+
This error means the request hit an endpoint that doesn't match the [captcha type](/de/basics/captcha-types) configured for the site key. The CAPTCHA type lives **only** in the [Prosopo portal](https://portal.prosopo.io) — set it on the site key, and the widget will pick it up automatically on the next render.
23+
2524

2625
### Was bedeutet `Session not found`?
2726
Dieser Fehler tritt auf, wenn die Sitzung nicht gefunden wird. Dies kann passieren, wenn die Sitzung abgelaufen ist oder wenn die Sitzungs-ID

0 commit comments

Comments
 (0)