nestjs-basic-auth

v0.0.3

NESTJS BASIC AUTH RECIPE

_ _signor_p_ · 1 downloads · Updated 7/8/2026
nestjsnexauthrecipe
xnex install nestjs-basic-auth GitHub repo

NestJS Basic Auth

JWT tabanlı, minimal ve genişletilebilir kimlik doğrulama modülü içeren bir NestJS başlangıç projesi. JwtSetupModule herhangi bir NestJS projesine plug-in olarak eklenebilecek şekilde tasarlanmıştır.

Özellikler

  • JWT ile kimlik doğrulama@nestjs/jwt üzerinden token üretimi ve doğrulaması
  • Guard tabanlı korumaNexAuthGuard ile route/controller seviyesinde erişim kontrolü
  • Ortam değişkeni tabanlı config@nestjs/config ile registerAs kullanılarak izole JWT ayarları
  • Bearer token çözümlemeAuthorization: Bearer <token> header'ından otomatik token çıkarımı
  • Global config modülüConfigModule.forRoot({ isGlobal: true }) ile tek noktadan yapılandırma

Proje Yapısı

text
src/
├── common/
│   └── guards/
│       └── auth.guard.ts       # NexAuthGuard - token doğrulama guard'ı
├── configs/
│   └── jwt.config.ts           # JWT secret & sign options config
├── modules/
│   └── jwt/
│       └── jwt.module.ts       # JwtSetupModule - JWT + Config birleşik modül
├── app.module.ts
└── main.ts

Kurulum

bash
xnex install -r nestjs-basic-auth

.env dosyası oluşturup aşağıdaki değişkenleri tanımlayın (opsiyonel — tanımlanmazsa varsayılan değerler kullanılır):

env
JWT_SECRET=your-secret-key
EXPIRES=1d

Not: JWT_SECRET prodüksiyon ortamında mutlaka ayarlanmalıdır. Varsayılan değer (S3C43T-53Y) yalnızca geliştirme amaçlıdır.

Çalıştırma

bash
# geliştirme modu (watch)
bun run start:dev

# production build
bun run build
bun run start:prod

Kullanım

Guard'ı bir controller'a uygulama

ts
import { UseGuards } from '@nestjs/common';
import { NexAuthGuard } from './common/guards/auth.guard';

@UseGuards(NexAuthGuard)
@Controller('protected')
export class ProtectedController {
  // ...
}

ÖRNEK KULLANIM CONTROLLER

typescript
import { Body, Controller, Post, Req, UseGuards } from '@nestjs/common';
import { JwtService } from '@nestjs/jwt';
import { Request } from 'express';
import { NexAuthGuard } from 'src/common/guards/auth.guard';

@Controller('jwt')
export class JWTController {
    constructor(private readonly jwtService: JwtService) { }

    @Post('create')
    createJwt(@Body() body: any) {
        return {
            message: "Add this token to the 'Authorization' header when submitting your 'POST / me' request.",
            access: this.jwtService.sign(body)
        }
    }

    @Post('me')
    @UseGuards(NexAuthGuard)
    me(@Req() req: Request) {
        return req['user']
    }
}

İstek örneği

http
GET /protected
Authorization: Bearer <jwt_token>

Token geçerliyse request.user alanına decode edilmiş payload atanır ve istek işleme devam eder. Token eksik, geçersiz veya süresi dolmuşsa 401 Unauthorized döner.

Modül Detayları

JwtSetupModule

ConfigModule ve JwtModule'ü birlikte kurar; jwtConfig üzerinden asenkron olarak secret ve signOptions değerlerini enjekte eder. Projeye eklemek için AppModule'ün imports dizisine eklemeniz yeterlidir:

ts
@Module({
  imports: [JwtSetupModule],
})
export class AppModule {}

NexAuthGuard

CanActivate arayüzünü implemente eder. Authorization header'ından Bearer token'ı çıkarır, JwtService.verifyAsync ile doğrular ve başarılıysa isteğe user alanını ekler.

Gereksinimler

  • Node.js
  • NestJS 11.x

Lisans

UNLICENSED — özel/dahili kullanım içindir.