adonis-turnstile
TypeScript icon, indicating that this package has built-in type declarations

1.0.4 • Public • Published

adonis-turnstile

AdonisJS Turnstile is a package that provides a set of tools to secure your AdonisJS applications from bots and spam attacks while also protecting your user's privacy.

Release

Installation

Install and configure the package in your Adonis project.

# npm
npm i adonis-turnstile
node ace configure adonis-turnstile

# yarn
yarn add adonis-turnstile
node ace configure adonis-turnstile

Usage

Step 1: Registration

Sign up for a Cloudflare account and go to the Cloudflare Turnstile feature page. Login and follow the steps to get your site and secret key.

Step 2: Add variables in .env file

TURNSTILE_SITE_KEY=YOUR_SITE_KEY
TURNSTILE_SECRET_KEY=YOUR_SECRET_KEY 

Step 3: Add validation in the .env.ts file

import Env from '@ioc:Adonis/Core/Env'

export default Env.rules({
  // ....
  TURNSTILE_SITE_KEY: Env.schema.string(),
  TURNSTILE_SECRET_KEY: Env.schema.string(),
})

Step 4: Add middleware to start/kernel.ts

Server.middleware.registerNamed({
  // ....
  turnstile: () => import('App/Middleware/Turnstile'),
})

Step 5: Add middleware to your route

Route.post('login', 'LoginController.login').middleware('turnstile')

Step 6: Add the script to your client-side

Add this turnstileScript helper to end of your body tag. This helper will inject the script tag to your HTML.

...
{{ turnstileScript() }}
...
<body>

it will render like this:

...
<script src="https://challenges.cloudflare.com/turnstile/v0/api.js" async defer></script>
...
<body>

Step 7: Update your form

Add this turnstileField helper to inside your form or anywhere that you want:

....
<input type="password" name="password" />
<button type="submit">Login</button>

{{ turnstileField() }}
....

Step 8: Check response in your controller

export default class LoginController {
  public async login({ turnstile, request, view }: HttpContextContract) {
    if (turnstile.success) {
      // Do some action
    }
    // Throw error
  }
}

License

MIT License

Package Sidebar

Install

npm i adonis-turnstile

Weekly Downloads

1

Version

1.0.4

License

MIT

Unpacked Size

14.4 kB

Total Files

14

Last publish

Collaborators

  • cookievu