JWT (Access + Refresh Token Rotation), Rol Tabanlı Yetkilendirme (RBAC), Throttling, Account Lockout ve Audit Logging ile Güvenli Üretim Mimarisi.
Geliştirici Portföyü • Mimari Akış • Güvenlik Standartları • Kurulum & API
Bu proje; kurumsal ölçekte backend uygulamaları için yüksek güvenlik, tip güvenliği ve modüler mikroservis standartlarına uygun olarak tasarlanmış bir NestJS + Prisma + PostgreSQL Boilerplate mimarisidir.
Kimlik doğrulama süreçlerinde endüstri standardı olan Token Rotation, brute-force saldırılarına karşı Account Lockout, IP tabanlı Audit Logging ve rol tabanlı erişim kontrolü (RBAC) mekanizmaları uçtan uca uygulanmıştır.
┌────────────────────────────────────────────────────────┐
│ İstemci / Web / Mobil │
└───────────────────────────┬────────────────────────────┘
│
▼ HTTPS / Authorization: Bearer <Token>
┌────────────────────────────────────────────────────────┐
│ NestJS Gateway / Guards & Middleware │
│ • ThrottlerGuard: IP bazlı Rate Limiting (Koruması) │
│ • AccountLockoutGuard: 5 hatalı denemede 15dk kilitleme│
│ • JwtAuthGuard: Access Token doğrulama (Kısa ömürlü) │
│ • RolesGuard: RBAC (ADMIN vs. USER hiyerarşisi) │
└───────────────────────────┬────────────────────────────┘
│
▼
┌────────────────────────────────────────────────────────┐
│ Servis Katmanı & İş Mantığı │
│ • AuthService: Bcrypt hashleme, Token Rotation │
│ • AuditService: IP & User-Agent işlem kaydı │
│ • Tasks/Users Service: CRUD operasyonları │
└───────────────────────────┬────────────────────────────┘
│
▼
┌────────────────────────────────────────────────────────┐
│ Prisma ORM & PostgreSQL Veritabanı │
│ • UUID birincil anahtarlar, snake_case isimlendirme │
│ • AuditLog, User, Task, RefreshToken tabloları │
└────────────────────────────────────────────────────────┘
- JWT Token Rotation & Refresh Tokens: Access token süresi dolduğunda, tek kullanımlık refresh token ile yeni çift üretilir. Eski refresh token geçersiz kılınarak token çalınma riskleri engellenir.
- Rol Tabanlı Erişim Kontrolü (RBAC):
@Roles('ADMIN')dekoratörleri ile hassas uç noktalar ve metrik dashboard'ları sınırlandırılmıştır. - Brute-Force & Hesap Kilitleme (Account Lockout): 5 ardışık hatalı şifre denemesinde hesap otomatik olarak 15 dakika boyunca kilitlenir.
- İstek Sınırlama (Rate Limiting / Throttling):
@nestjs/throttlerile DDoS ve spam isteklerine karşı IP bazlı hız sınırlandırması uygulanır. - Denetim Günlüğü (Audit Logging): Tüm oturum açma, çıkış yapma, parola sıfırlama ve kritik değişiklikler istemci IP adresi ve User-Agent bilgisiyle kalıcı olarak loglanır.
- Bcrypt Parola Güvenliği: Salt round parametreleriyle güvenli şifre özetleme.
- Node.js 20+
- Docker & Docker Compose
docker-compose up -dBu komut PostgreSQL veritabanını kaldırır, Prisma migrationlarını çalıştırır ve NestJS uygulamasını ayağa kaldırır:
- API Adresi:
http://localhost:3000 - Swagger UI Dokümantasyonu:
http://localhost:3000/api - Sistem Sağlık Kontrolü:
http://localhost:3000/health
# Bağımlılıkları kurun
npm install
# Ortam değişkenlerini hazırlayın
cp .env.example .env.development
# Yalnızca PostgreSQL veritabanını kaldırın
docker-compose up -d postgres
# Veritabanı şemasını uygulayın
npx prisma migrate dev
# Geliştirme sunucusunu başlatın
npm run start:dev| Metot | Uç Nokta | Yetki | Açıklama |
|---|---|---|---|
POST |
/auth/register |
Public | Yeni kullanıcı kaydı |
POST |
/auth/login |
Public | Oturum açma (Access + Refresh Token) |
POST |
/auth/refresh |
Bearer Token | Token Rotation ile yeni token çifti alma |
POST |
/auth/logout |
Bearer Token | Oturumu sonlandırma ve token iptali |
GET |
/admin/metrics |
ADMIN | Sistem metrikleri ve denetim kayıtları |
GET |
/tasks |
Authenticated | Kullanıcı görev listesi |
GET |
/health |
Public | Sunucu ve veritabanı sağlık kontrolü |
| Katman | Teknoloji | Fonksiyon |
|---|---|---|
| Framework | NestJS v10 | Kurumsal seviye TypeScript mimarisi |
| Veritabanı & ORM | PostgreSQL 16, Prisma ORM | Tip güvenli veri erişimi ve migration yönetimi |
| Kimlik Doğrulama | Passport.js, JWT, Bcrypt | Güvenli kimlik doğrulama ve hashleme |
| Konteynerizasyon | Docker, Docker Compose, Nginx | Taşınabilir mikroservis dağıtımı |
| Dokümantasyon | Swagger / OpenAPI | Otomatik interaktif API kılavuzu |
Muhammet Atmaca
- Web Sitesi: muhammetatmaca.com.tr
- GitHub: @muhammetatmaca
- E-posta: info@muhammetatmaca.com.tr
Bu proje MIT lisansı altında sunulmaktadır.