0.0.7 • Published 2 years ago

@fpjs-incubator/turing v0.0.7

Weekly downloads
-
License
MIT
Repository
-
Last release
2 years ago

Turing

Turing helps to avoid malicious clients by flexible challenges.

Register keys

You can generate your keys there.

🔩 Try Demo - see the live demo running in your browser

Installation

You can get started quickly with CDN, or install Turing with npm and modern build tools.

CDN

Simply download and include with a script tag. Turing will be registered as a global variable.

To disable BotD, add disable-botd attribute to script load.

Automatically render the challenge (default)

Opens a modal window with challenge after form submit.

  1. Load the Turing API
<script data-sitekey="<your-public-key>" src="https://cdn.jsdelivr.net/npm/@fpjs-incubator/turing/dist/turing.js"></script>

Automatically bind the challenge

Puts challenge frame inside <div>.

  1. Load the Turing API
<script src="https://cdn.jsdelivr.net/npm/@fpjs-incubator/turing/dist/turing.js"></script>
  1. Create a <div> with turing-spot attribute.
<div data-sitekey="<your-public-key>" turing-spot ></div>

Programmatically invoke the challenge

  1. Load the Turing API
<script src="https://cdn.jsdelivr.net/npm/@fpjs-incubator/turing/dist/turing.js"></script>
  1. Call Turing.execute() on each action you wish to protect.
Turing.ready(() => {
  Turing.execute().then(async sessionId => {
    // Add your logic to submit to your backend server here.
  })
})
  1. Send sessionId to your backend with the request to verify

NPM

In order to install the node module, you can use NPM

npm install @fpjs-incubator/turing

Or you can install with Yarn:

yarn add @fpjs-incubator/turing

Verify response

POST https://turing.fpapi.io/api/v1/verify

  • session_id - session id which can be found by turing-session-id key form value.
  • secret_key - your secret key.
curl --location --request POST 'https://turing.fpapi.io/api/v1/verify' \
    --header 'Content-Type: application/json' \
    --data-raw '{ "session_id": "<session-id>", "secret_key": "<your-secret-key>" }'

Response OK

{
    "solved": true
}

Response Error

{
    "error": {
        "message": "<error-message>"
    }
}
0.0.7-beta.0

2 years ago

0.0.5

2 years ago

0.0.7

2 years ago

0.0.6

2 years ago

0.0.4

2 years ago

0.0.3

2 years ago

0.0.2

2 years ago

0.0.1

2 years ago