Ana içeriğe geç

Kimlik Doğrulama

Yöntem

JWT (JSON Web Token), Authorization: Bearer <token> başlığıyla taşınır. Uygulama çerez tabanlı oturum kullanmaz.

Kaynak: backend/src/middlewares/auth.middleware.ts, backend/src/utils/jwt.util.ts

Giriş

Method: POST    Endpoint: /login (ve /api/v1/login)

Authentication: Gerekmez. Uç loginRateLimiter ile korunur.

Purpose: Kullanıcı kimliğini doğrular ve bir JWT üretir.

Source: backend/src/routers/auth.routes.ts, controllers/auth.controller.ts

Notlar

  • Parola karşılaştırması bcryptjs ile yapılır.
  • JWT_SECRET tanımlı değilse giriş 500 ile yanıtlanır (koda gizli varsayılan anahtar gömülmemiştir).
  • Token ömrü JWT_EXPIRES_IN değişkeninden gelir.
  • Başarılı/başarısız girişler platform-logs koleksiyonuna denetim kaydı olarak yazılır; ham istek gövdesi asla kaydedilmez.

Doğrulama middleware'i

authenticate sırasıyla şunları yapar:

  1. Authorization başlığı yoksa veya boşsa → 401 "Yetkilendirme bilgisi bulunamadı."
  2. Şema Bearer değilse veya token boşsa → 401 "Geçersiz yetkilendirme biçimi."
  3. verifyAuthToken(token) başarılıysa çözülmüş yük req.user alanına yazılır.
  4. Doğrulama hatası merkezî hata middleware'ine devredilir.

Rol denetimi

authorizeRoles(...allowedRoles) bir middleware fabrikasıdır; authenticate sonrasında kullanılır. Rol eşleşmezse 403 "Bu işlem için yetkiniz yok." döner.

Mevcut kullanım

authorizeRoles yardımcı olarak tanımlıdır. Router dosyalarında bugün korumalı uçlar yalnızca authenticate ile korunmaktadır.

Korumalı uçlar

authenticate kullanan uçlar: POST /create-api-doc, PUT /update-api-doc/:id, GET /api-docs-list, DELETE /delete-api-doc/:id, GET /getUser, POST /platform/files/upload, POST /fileAddd.