70 lines
1.5 KiB
Markdown
70 lines
1.5 KiB
Markdown
# ZSC API daemon
|
|
Zero Storage Captcha selfhosted REST API service
|
|
|
|
## Compile
|
|
|
|
```
|
|
sudo apt install git qtdeclarative5-dev
|
|
git clone --recursive https://github.com/ZeroStorageCaptcha/api-daemon.git zero-captcha-daemon
|
|
cd zero-captcha-daemon
|
|
qmake && make
|
|
```
|
|
|
|
## Run
|
|
|
|
```
|
|
-a --address Address to bind (127.0.0.1 by default)
|
|
-p --port Port to bind (7697 by default)
|
|
-t --threads Working threads (hardware value by default)
|
|
```
|
|
|
|
For Linux systems with systemd check `systemd` folder which contains service file example.
|
|
|
|
## API
|
|
|
|
GET request, JSON response
|
|
|
|
**Each response contains a boolean "status" that indicates the logic success of the operation. If !status, read "message" field.**
|
|
|
|
1. Generate captcha
|
|
```
|
|
-> /generate?length=CAPTCHA_TEXT_LENGTH&difficulty=0|1|2"
|
|
<- { "token": "CAPTCHA_TOKEN", "png": "BASE64_ENCODED_PICTURE" }
|
|
```
|
|
2. Validate captcha
|
|
```
|
|
-> /validate?answer=CAPTCHA_ANSWER&token=CAPTCHA_TOKEN
|
|
<- { "valid": true|false }
|
|
```
|
|
3. Settings
|
|
|
|
3.1 Tokens case sensitive to captcha answer:
|
|
```
|
|
-> /settings?case_sensitive=enable|disable
|
|
```
|
|
3.2 Numbers only mode:
|
|
```
|
|
-> /settings?number_mode=enable|disable
|
|
```
|
|
## Example
|
|
|
|
1. Generate
|
|
```
|
|
Client: /generate?length=4&difficulty=1
|
|
Server:
|
|
{
|
|
"png": "iVBORw0KGgoAAAANSU <...> AAAAAElFTkSuQmCC",
|
|
"status": true,
|
|
"token":" i2oefBw6mswaORIphgDcY7GwnS_532"
|
|
}
|
|
```
|
|
2. Validate
|
|
```
|
|
Client: /validate?answer=iuda1&token=i2oefBw6mswaORIphgDcY7GwnS_532
|
|
Server:
|
|
{
|
|
"status": true,
|
|
"valid": false
|
|
}
|
|
```
|