Giriş (Login)
Route
/login
Sayfanın Amacı
Kullanıcının kullanıcı adı ve parolasıyla kimlik doğrulaması yaparak uygulamaya oturum açmasını sağlamak.
Sayfada Bulunan Alanlar
- "Platform" yazılı metin logosu.
- Kilit durumunda gösterilen uyarı (kalan bekleme süresi ile).
- Başarısız deneme sayısı/kalan hak uyarısı (kilitlenmeden önce).
- Genel hata uyarısı (kimlik bilgisi hatalı/ağ hatası vb.).
- Form: Kullanıcı Adı alanı, Parola alanı (maskeli), "Giriş Yap" gönderim butonu (her iki alan doluyken görsel olarak "dolu" durumuna geçer).
Kullanıcı İşlemleri
- Kullanıcı adı ve parola girilir.
- "Giriş Yap" butonuna tıklanır veya form gönderilir.
- Başarılı girişte otomatik olarak Platformlar sayfasına (
/platform) yönlendirilir. - Üç başarısız denemeden sonra form 30 saniyeliğine kilitlenir; kilit süresi dolunca otomatik olarak tekrar denemeye izin verilir.
Kullanılan Veriler
- Backend'den dönen
token,user, opsiyonelusernamealanları (bkz. API Dokümantasyonu › Kimlik Doğrulama). - Zaten geçerli bir oturum varsa (Redux
adminstate doluysa), sayfa hiç render edilmeden/platform'a yönlendirilir.
Yetki ve Görünürlük
Herkese açık — oturum gerektirmez. Zaten oturumu olan kullanıcılar bu sayfayı göremez, otomatik yönlendirilir.
Kullanılan Bileşenler
dashboard/src/components/auth/Login.tsx— sayfanın ana bileşeni.dashboard/src/components/auth/AuthLayout.tsx— giriş sayfasına özel, kenar menüsüz sayfa çerçevesi.dashboard/src/components/hooks/useLoginLockout.tsx— 3 başarısız denemeden sonra 30 saniyelik kilit mantığı.dashboard/src/services/authService.tsx— gerçek backend giriş isteği (loginRequest).dashboard/src/services/auditService.tsx— başarılı girişin denetim günlüğüne kaydı (logPlatformStep, arka planda, sayfa akışını etkilemez).
API İletişimi
| İşlem | Metot | Endpoint | Kullanım amacı |
|---|---|---|---|
| Giriş yapma | POST | /login |
Kullanıcı adı/parola doğrulama, JWT token alma |
| Giriş denemesi kaydı | POST | /iqv_platform_log |
Başarılı giriş sonrası denetim günlüğü kaydı (arka planda, hataları kullanıcıya yansımaz) |
Ayrıntılı istek/yanıt sözleşmesi için bkz. API Dokümantasyonu › Kimlik Doğrulama.
Durum Yönetimi
- Form alanları: yerel React state (
useState,Form.useForm). - Giriş kilidi (deneme sayısı, kilit bitiş zamanı):
localStorage(iqv_login_attempts,iqv_login_lockout_until) — Redux'ta değil. - Başarılı giriş sonrası oturum: Redux
adminslice'ına yazılır veredux-persistilelocalStorage'da (persist:IQV Platformanahtarı) kalıcı hale gelir; ayrıca eski sürümle uyumluluk içintoken/userdoğrudanlocalStorage'a da yazılır.