Ana içeriğe geç

Kurulum

Paketi yükle

NPM

npm i nestjs-captcha-module

Yarn

yarn add nestjs-captcha-module

App modül yapılandırması

Modülü senkron (register) ya da asenkron (registerAsync) olarak register edebilirsiniz.

AlanTipZorunluVarsayılanNotlar
providerCaptchaProvider✅ EvetKullanılacak sağlayıcı implementasyonunu seçer.
isGlobalboolean❌ Hayırfalsetrue ise modülü NestJS’te global olarak register eder.
guardOptions.location'headers' | 'body'❌ Hayır'headers'Captcha token’ının nereden okunacağını belirler.
guardOptions.fieldNamestring❌ Hayır"x-captcha-token"Captcha token alan adı (header veya body).

CaptchaModule.register

app.module.ts
import { Module } from '@nestjs/common';
import { CaptchaModule, CaptchaProvider } from 'nestjs-captcha-module';

@Module({
imports: [
CaptchaModule.register({
isGlobal: true,
provider: CaptchaProvider.RECAPTCHA,
secretKey: process.env.RECAPTCHA_SECRET_KEY!,
guardOptions: {
location: 'headers',
fieldName: 'x-captcha-token',
},
}),
],
})
export class AppModule {}

CaptchaModule.registerAsync

app.module.ts
import { Module } from '@nestjs/common';
import { ConfigModule, ConfigService } from '@nestjs/config';
import { CaptchaModule, CaptchaProvider } from 'nestjs-captcha-module';

@Module({
imports: [
ConfigModule.forRoot(),

CaptchaModule.registerAsync({
isGlobal: true,
provider: CaptchaProvider.RECAPTCHA,
imports: [ConfigModule],
inject: [ConfigService],
useFactory: (config: ConfigService) => ({
secretKey: config.get<string>('RECAPTCHA_SECRET_KEY')!,
guardOptions: {
location: 'headers',
fieldName: 'x-captcha-token',
},
}),
}),
],
})
export class AppModule {}