Kimlik doğrulama ve güvenli erişim
JWT Token sistemi ile güvenli kimlik doğrulama kurduk. API'ye erişim için gizli anahtar gereklidir.
E-posta ve şifre ile giriş yapılır
Sunucu JWT token döner
Her istekte Authorization header'a token eklenir
JWT token ile kimlik doğrulama süreci şöyle işler:
POST /api/login ile email ve password gönderilir. Auth::attempt($credentials) ile veritabanında kullanıcı aranır ve şifre Hash::check() ile doğrulanır.
Laravel Sanctum $user->createToken('api') ile token oluşturur. Token personal_access_tokens tablosuna hash'lenerek kaydedilir. Plain text token sadece bir kez döner.
Client her istekte Authorization: Bearer {token} header'ı ekler. Token, API key değil, kullanıcıya özel geçici bir anahtardır.
auth:sanctum middleware token'ı alır, hash('sha256', $token) ile hash'leyip veritabanında arar. Bulunursa ilişkili user yüklenir.
Token'ın expires_at alanı kontrol edilir. config('sanctum.expiration') değeri (24 saat) geçmişse 401 Unauthorized döner.
Doğrulama başarılıysa auth()->user() ile kullanıcı bilgilerine erişilebilir. Controller'da $request->user() authenticated user'ı döner.
JSON Web Token - Şifreli kimlik belgesi.
Dijital kimlik kartı gibi, kim olduğunuzu kanıtlar
Token'ı taşıyan kişi yetkilidir anlamında.
Kapı kartı gibi, kartı olan girer