Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/NerdyLuffy/adonisjs-hcaptcha
A middleware for AdonisJS to keep your web applications secure from bots using hCaptcha
https://github.com/NerdyLuffy/adonisjs-hcaptcha
adonis adonis-framework adonis-hcaptcha adonisjs hcaptcha
Last synced: about 1 month ago
JSON representation
A middleware for AdonisJS to keep your web applications secure from bots using hCaptcha
- Host: GitHub
- URL: https://github.com/NerdyLuffy/adonisjs-hcaptcha
- Owner: NerdyLuffy
- License: mit
- Created: 2021-10-30T05:17:50.000Z (about 3 years ago)
- Default Branch: main
- Last Pushed: 2023-05-27T02:22:28.000Z (over 1 year ago)
- Last Synced: 2024-10-17T02:30:02.963Z (2 months ago)
- Topics: adonis, adonis-framework, adonis-hcaptcha, adonisjs, hcaptcha
- Language: TypeScript
- Homepage:
- Size: 871 KB
- Stars: 11
- Watchers: 4
- Forks: 3
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- Contributing: CONTRIBUTING.md
- License: LICENSE.md
Awesome Lists containing this project
- awesome-adonisjs - AdonisJS hCaptcha - A middleware for AdonisJS to keep your web applications secure from bots using hCaptcha (Packages)
README
adonisjs-hcaptcha
A package to keep your AdonisJS applications safe from bots, spam and protect your user privacy
[![github-actions-image]][github-actions-url] [![npm-image]][npm-url] [![license-image]][license-url] ![][typescript-image] [![synk-image]][synk-url]
Installation
Install and configure the package in your Adonis project.```bash
# npm
npm i adonisjs-hcaptcha
node ace configure adonisjs-hcaptcha# yarn
yarn add adonisjs-hcaptcha
node ace configure adonisjs-hcaptcha
```
Usage
Step 1: Registration
Signup for a account on [hCaptcha website](https://www.hcaptcha.com/signup-interstitial)
Login and follow the steps to get your secret and site keyStep 2: Add variables in `.env` file
```txt
HCAPTCHA_SECRET_KEY=YOUR_SECRET_KEY
HCAPTCHA_SITE_KEY=YOUR_SITE_KEY
```Step 3: Add validation in the `.env.ts` file
```ts
import Env from '@ioc:Adonis/Core/Env'export default Env.rules({
// ....
HCAPTCHA_SITE_KEY: Env.schema.string(),
HCAPTCHA_SECRET_KEY: Env.schema.string(),
})
```Step 4: Add middleware to `start/kernel.ts`
```ts
Server.middleware.registerNamed({
// ....
hcaptcha: () => import('App/Middleware/Hcaptcha'),
})
```Step 5: Add middleware to your route
```ts
Route.post('login', 'UserController.login').middleware('hcaptcha')
```
The new middleware will check for `h-captcha-response` field in [request input](https://docs.adonisjs.com/guides/request#requestinput)> `h-captcha-response` field will contain the unique one time non repeating token which will be validated with hCaptcha to make sure its not a bot
Step 6: Check response in your controller
```ts
export default class UsersController {
public async index({ hcaptcha }: HttpContextContract) {
if (hcaptcha.success) {
// Do some action
}
// Throw error
}
}```
[github-actions-image]: https://img.shields.io/github/workflow/status/NerdyLuffy/adonisjs-hcaptcha/test?style=for-the-badge
[github-actions-url]: https://github.com/NerdyLuffy/adonisjs-hcaptcha/actions/workflows/test.yml "github-actions"[npm-image]: https://img.shields.io/npm/v/adonisjs-hcaptcha.svg?style=for-the-badge&logo=npm
[npm-url]: https://npmjs.org/package/adonisjs-hcaptcha "npm"[license-image]: https://img.shields.io/npm/l/adonisjs-hcaptcha?color=blueviolet&style=for-the-badge
[license-url]: LICENSE.md "license"[typescript-image]: https://img.shields.io/badge/Typescript-294E80.svg?style=for-the-badge&logo=typescript
[typescript-url]: "typescript"[synk-image]: https://img.shields.io/snyk/vulnerabilities/github/NerdyLuffy/adonisjs-hcaptcha?style=for-the-badge
[synk-url]: https://snyk.io/test/github/NerdyLuffy/adonisjs-hcaptcha?targetFile=package.json "synk"