api-daemon/README.md

1.5 KiB

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
    }