Üyeler hesaplarına nasıl giriş yapıyor? Güvenli ve hızlı oturum açma.
E-posta + Şifre ile Giriş: Klasik ve güvenli giriş yöntemi
Beni Hatırla: 30 gün boyunca oturumu açık tutma seçeneği
Sosyal Medya ile Giriş: Google ve Facebook hesapları ile tek tıkla giriş
Başarısız Giriş Koruması: 5 yanlış denemede 15 dakika kilitlenme
Girilen e-posta veritabanında aranıyor. Bulunamazsa genel hata mesajı gösteriliyor (güvenlik için hangi bilginin yanlış olduğu söylenmiyor).
Girilen şifre, veritabanındaki bcrypt hash ile karşılaştırılıyor. Eşleşirse oturum başlatılıyor.
Giriş başarılı olunca oturum cookie'si oluşturulur. "Beni Hatırla" seçiliyse 30 gün, değilse tarayıcı kapanana kadar geçerli.
5 yanlış denemede hesap 15 dakika kilitlenir
"E-posta veya şifre hatalı" genel mesajı
Her giriş IP, cihaz ve tarih ile kaydedilir
Yeni cihazdan girişte e-posta bildirimi
Google hesabı ile tek tıkla
Facebook hesabı ile tek tıkla
Giriş butonuna basıldığında gerçekleşen teknik süreç
Kullanıcı e-posta ve şifresini girip "Giriş Yap" dediğinde, sistem kimlik bilgilerini doğruluyor, oturum oluşturuyor ve güvenlik kontrollerini yapıyor. Her başarısız deneme kaydediliyor.
RateLimiter::for('login') ile IP başına dakikada 5 deneme limiti kontrol edilir. Aşılırsa TooManyRequestsException fırlatılır ve 15 dakika bekleme süresi başlar.
User::where('email', $email)->first() ile kullanıcı aranır. Bulunamazsa genel hata mesajı döner (güvenlik için "e-posta bulunamadı" denmez, saldırgan e-posta listesi oluşturmasın).
Hash::check($password, $user->password) ile girilen şifre veritabanındaki hash ile karşılaştırılır. Bcrypt timing-safe karşılaştırma yapar (timing attack koruması).
$request->session()->regenerate() ile yeni session ID üretilir. Bu session fixation saldırılarını önler. Eski session ID geçersiz hale gelir.
"Beni Hatırla" seçiliyse Str::random(60) ile token üretilir, remember_token kolonuna kaydedilir. 30 gün geçerli cookie oluşturulur.
Login eventi fırlatılır. IP adresi, User-Agent, giriş zamanı login_logs tablosuna kaydedilir. Yeni cihazdan girişte e-posta bildirimi gönderilir.
Guard: Auth::attempt(['email' => $email, 'password' => $password], $remember) | Session Driver: database
Kullanıcının giriş durumunu tutan geçici kayıt
Tarayıcıda saklanan küçük veri parçası
Sosyal medya girişi için güvenli yetkilendirme protokolü
Şifre tahmin etmek için deneme yanılma saldırısı