PHP MİMARİSİ #31: JWT ve Sanctum / Passport ile Güvenli Kimlik Doğrulama

JWT ve Sanctum / Passport ile Güvenli Kimlik Doğrulama

JWT ve Sanctum / Passport ile Güvenli Kimlik Doğrulama

1. Konunun Mimari Önemi ve Temel Çalışma Prensipleri

JWT (JSON Web Token) ve Laravel’in Sanctum / Passport kütüphaneleri, modern web uygulamalarında güvenli kimlik doğrulama ve yetkilendirme için kullanılır. JWT, ön uç ve arka uç arasında güvenli iletişim sağlamak için tasarlanmıştır. Sanctum ve Passport ise Laravel uygulamalarında API’lar için OAuth2.0 ve JWT destekleri sunar.

Bu yöntemler, kullanıcıların kimlik doğrulamasını ve yetkilendirmelerini güvenli bir şekilde yönetirken, sadece gerekli bilgileri aktarmak ve uygulamanın performansını artırmak için kullanılır.

2. Kurumsal Projelerde Dikkat Edilmesi Gereken En İyi Pratikler (Best Practices)

  • Güvenlik: JWT tokenleri şifrelenmelidir ve uygun güvenlik önlemleri alınmalıdır.
  • Token Süreleri: Tokenların geçici olması ve süresinin belirlenmesi gerekir.
  • Yetkilendirme: Yetkilendirme rolleri ve izinleri ayrıntılı olarak yönetilmelidir.
  • Çoklu Oturum: Kullanıcının birden fazla cihazdan eşzamanlı oturum açabilmesi için mekanizmaların yerleştirilmesi gerekir.

3. Gerçek Dünya Senaryolarına Uygun Kod Bloğu Örneği


<?php

use Illuminate\Http\Request;
use Illuminate\Support\Facades\Route;
use Laravel\Sanctum\Sanctum;

// API Routes
Route::middleware('auth:sanctum')->group(function () {
    Route::get('/user', function (Request $request) {
        return $request->user();
    });
});

// Authentication Routes
Route::post('/login', function (Request $request) {
    $credentials = $request->validate([
        'email' => 'required|email',
        'password' => 'required',
    ]);

    if (! $token = auth()->attempt($credentials)) {
        return response()->json(['error' => 'Unauthorized'], 401);
    }

    return response()->json(['token' => $token]);
});

// Sanctum Configuration
Sanctum::guard('api')->middleware(['auth:sanctum']);
    

4. Performans Optimizasyonu ve Olası Darboğazlar

JWT ve Sanctum / Passport’un performansını optimize etmek için, tokenları bellekte veya veritabanında saklamak yerine, Redis gibi hızlı in-memory veritabanları kullanılabilir. Ayrıca, tokenların sıklıkla yenilenmesi ve tokenları sık sık invalidate etmek gibi işlemler, performans üzerinde olumsuz etkileri olabilir.

Ayrıca, yetkilendirme rolleri ve izinleri çok sayıda kullanıcı için tutulurken, bu bilgilerin veritabanında doğru bir şekilde yönetilmesi ve sorgulanması önemlidir. Bu, yetkilendirme işlemlerinin hızlı ve etkin bir şekilde yapılmasını sağlar.

NasuhAkay
NasuhAkay

Nasuh Akay, 20 yılı aşkın IT deneyimine sahip; kurumsal teknoloji çözümleri, ERP sistemleri, yazılım geliştirme, veri yönetimi ve dijital dönüşüm alanlarında çalışmalar yürüten bir teknoloji profesyonelidir.

Kariyeri boyunca farklı sektörlerde edindiği deneyimlerini; teknoloji, yazılım, veri mimarisi ve iş süreçlerinin geliştirilmesi üzerine yoğunlaştırmıştır.

Bu blogda ERP çözümleri, SQL Server, yazılım geliştirme, yapay zekâ, dijital dönüşüm ve teknoloji dünyasındaki gelişmeler üzerine bilgi, deneyim ve teknik paylaşımlarını okuyucularla buluşturmaktadır.

Amacı, karmaşık teknik konuları anlaşılır bir dille ele almak, gerçek hayatta karşılaşılan problemlere yönelik uygulanabilir çözümler sunmak ve teknoloji alanındaki bilgi birikimini paylaşmaktır.

Articles: 1188

Leave a Reply

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir