Tüm Sayfalar / 88 - API Authentication
Sayfa 88 / 161
API Bölümü

API Authentication

Kimlik doğrulama ve güvenli erişim

Biz Ne Yaptık?

JWT Token sistemi ile güvenli kimlik doğrulama kurduk. API'ye erişim için gizli anahtar gereklidir.

Eski Yöntem

  • Session tabanlı
  • Sunucu bağımlı
  • Ölçeklenme sorunu

Modern Mimari

  • Stateless: Sunucu bağımsız
  • JWT: Kendini doğrular
  • 24 saat: Token geçerliliği

Kimlik Doğrulama Adımları

1

Login

E-posta ve şifre ile giriş yapılır

2

Token Al

Sunucu JWT token döner

3

API Kullan

Her istekte Authorization header'a token eklenir

Arkaplanda Neler Çalışıyor?

JWT token ile kimlik doğrulama süreci şöyle işler:

1

Login Request (Giriş İsteği)

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.

2

Token Generation (Token Oluşturma)

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.

3

Header Attachment (Başlık Ekleme)

Client her istekte Authorization: Bearer {token} header'ı ekler. Token, API key değil, kullanıcıya özel geçici bir anahtardır.

4

Token Validation (Token Doğrulama)

auth:sanctum middleware token'ı alır, hash('sha256', $token) ile hash'leyip veritabanında arar. Bulunursa ilişkili user yüklenir.

5

Expiration Check (Süre Kontrolü)

Token'ın expires_at alanı kontrol edilir. config('sanctum.expiration') değeri (24 saat) geçmişse 401 Unauthorized döner.

6

User Context (Kullanıcı Bağlamı)

Doğrulama başarılıysa auth()->user() ile kullanıcı bilgilerine erişilebilir. Controller'da $request->user() authenticated user'ı döner.

Anahtar Terimler

JWT

JSON Web Token - Şifreli kimlik belgesi.

Dijital kimlik kartı gibi, kim olduğunuzu kanıtlar

Bearer Token

Token'ı taşıyan kişi yetkilidir anlamında.

Kapı kartı gibi, kartı olan girer

Bearer
eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0...
Güvenli Erişim
24 Saat Geçerli Token
256-bit Şifreleme
HS256