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.
| Alan | Tip | Zorunlu | Varsayılan | Notlar |
|---|---|---|---|---|
provider | CaptchaProvider | ✅ Evet | — | Kullanılacak sağlayıcı implementasyonunu seçer. |
isGlobal | boolean | ❌ Hayır | false | true 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.fieldName | string | ❌ 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 {}