Laravel Sanctum ile SPA ve Mobil API Güvenliği

Kaan Atalay
09 May 2024
Modern web ve mobil uygulamalar, genellikle bir Single Page Application (SPA) veya mobil istemci ve bir API sunucusu şeklinde yapılandırılır. Laravel Sanctum, bu tür uygulamalar için basit ve güvenli bir kimlik doğrulama sistemi sunar.
1. Laravel Sanctum Nedir?
Sanctum, API token tabanlı kimlik doğrulama ve SPA kimlik doğrulaması için hafif bir çözüm sağlar. Kullanıcıların uygulamanıza güvenli bir şekilde erişmesini ve etkileşimde bulunmasını sağlar.
2. Kurulum
composer require laravel/sanctum
config/app.php dosyasında SanctumServiceProvider'ı kaydedin ve migrasyonları çalıştırın:
php artisan vendor:publish --provider="Laravel\Sanctum\SanctumServiceProvider"
php artisan migrate
3. API Tokenları Oluşturma
Kullanıcılar için API tokenları oluşturabilirsiniz.
$token = $user->createToken('mobil-uygulama')->plainTextToken;
4. Token Doğrulama
API isteklerinde Authorization başlığında token'ı gönderin.
Authorization: Bearer YOUR_TOKEN_HERE
5. Middleware Ayarları
api middleware grubuna sanctum middleware'ini ekleyin.
Route::middleware('auth:sanctum')->get('/user', function (Request $request) {
return $request->user();
});
6. SPA Kimlik Doğrulaması
Sanctum, SPA'lar için oturum tabanlı kimlik doğrulaması sağlar. sessions, cookies ve CSRF protection kullanır.
- kernel.php dosyasında EnsureFrontendRequestsAreStateful middleware'ini ekleyin.
7. CSRF Koruması
SPA'larda CSRF korumasını sağlamak için frontend tarafında ilk istekle sanctum/csrf-cookie endpoint'ine istek yapın.
8. CORS Ayarları
config/cors.php dosyasında izin verilen origin'leri ve başlıkları yapılandırın.
9. Mobil Uygulamalarda Kullanım
Mobil uygulamalarda API tokenlarını güvenli bir şekilde saklayın ve isteklerde kullanın. Keychain veya Secure Storage gibi yöntemlerle token'ı saklayabilirsiniz.
10. Token İzinleri ve Kapsamlar
Tokenlara belirli yetkiler atayabilirsiniz.
$token = $user->createToken('mobil-uygulama', ['create', 'update'])->plainTextToken;
Yetki kontrolü için middleware kullanabilirsiniz.
Sonuç
Laravel Sanctum, SPA ve mobil uygulamalarınız için basit ve etkili bir kimlik doğrulama çözümü sunar. Güvenliği artırmak ve kullanıcı deneyimini iyileştirmek için Sanctum'u projelerinize entegre edebilirsiniz. Atalay Tech olarak, güvenli ve ölçeklenebilir uygulamalar geliştirmek için uzman ekibimizle hizmetinizdeyiz. Daha fazla bilgi için bizimle iletişime geçin.