nestjs-cloudflare-captcha
TypeScript icon, indicating that this package has built-in type declarations

0.0.11 • Public • Published

NestJS Cloudflare CAPTCHA

This module provides integration with Cloudflare CAPTCHA (also known as Turnstile) for NestJS-based applications.

Installation

To install this module, use npm or yarn:

npm install nestjs-cloudflare-captcha
# or
yarn add nestjs-cloudflare-captcha

Usage

1. Module Configuration

To use TurnstileModule, you need to import it into your main module and pass the configuration.

Example using synchronous configuration:

import { Module } from '@nestjs/common'
import { TurnstileModule } from 'nestjs-cloudflare-captcha'

@Module({
	imports: [
		TurnstileModule.forRoot({
			secretKey: process.env.CAPTCHA_SECRET_KEY,
			token: req => req.body.captchaToken,
			skipIf: process.env.NODE_ENV === 'development',
		}),
	],
})
export class AppModule {}

Example using asynchronous configuration:

import { Module } from '@nestjs/common'
import { TurnstileModule } from 'nestjs-cloudflare-captcha'

@Module({
	imports: [
		TurnstileModule.forRootAsync({
			useFactory: async (configService: ConfigService) => ({
				secretKey: configService.get('CAPTCHA_SECRET_KEY'),
				token: req => req.headers['captcha-token'],
				skipIf: configService.get('NODE_ENV') === 'development',
			}),
		}),
	],
})
export class AppModule {}

2. Protect Routes with CAPTCHA

To protect routes from bots, use Turnstile as a decorator.

Example usage in a controller:

import { Controller, Post } from '@nestjs/common'
import { Turnstile } from 'nestjs-cloudflare-captcha'

@Controller('auth')
export class AuthController {
	@Post('login')
	@Turnstile()
	async login() {
		return 'This method is protected from bots with CAPTCHA'
	}
}

Support

If you have any questions or issues, feel free to contact the author.

License

This project is licensed under the MIT License.

/nestjs-cloudflare-captcha/

    Package Sidebar

    Install

    npm i nestjs-cloudflare-captcha

    Weekly Downloads

    0

    Version

    0.0.11

    License

    MIT

    Unpacked Size

    38.2 kB

    Total Files

    47

    Last publish

    Collaborators

    • vados_torpeda