1. API Authentication Nedir? 🤔
API Authentication, kullanıcıların kimliğini doğrulama sürecidir:
- Yetkisiz erişimi engeller 🛡️
- Kullanıcı başına özel içerik sağlar 🔐
- API güvenliğinin temel taşıdır 🧱
// Yetkisiz erişim örneği
Route::get('/profile', function () {
return auth()->user()->profile;
})->middleware('auth:api');
2. Laravel Sanctum (API Token) 🏆
Kurulum
composer require laravel/sanctum php artisan vendor:publish --provider="Laravel\Sanctum\SanctumServiceProvider"
Token Oluşturma
$token = $user->createToken('api-access', ['posts:read'])->plainTextToken;
Token ile Kimlik Doğrulama
GET /api/user Authorization: Bearer 1|AbCdEfGhIjKlMnOpQrStUvWxYz0123456789
3. Laravel Passport (OAuth2) 🌐
Kurulum
composer require laravel/passport php artisan passport:install
OAuth Route'ları
Route::post('/oauth/token', '\Laravel\Passport\Http\Controllers\AccessTokenController@issueToken');
OAuth Kullanımı
POST /oauth/token grant_type=password&client_id=1&client_secret=...&username=user@example.com&password=...
4. JWT Authentication (JSON Web Token) 🔐
Kurulum
composer require tymon/jwt-auth
Token Üretme
$token = auth('api')->attempt(['email' => $email, 'password' => $password]);
Token Doğrulama
try {
$user = auth('api')->user();
} catch (\Tymon\JWTAuth\Exceptions\TokenExpiredException $e) {
return response()->json(['error' => 'Token expired'], 401);
}
5. Kimlik Doğrulama Yöntemleri Karşılaştırması 📊
YöntemKarmaşıklıkKullanım AlanıÖzelliklerSanctum⭐⭐SPA + Mobil + APIBasit token yönetimiPassport⭐⭐⭐⭐Üçüncü Parti API ErişimiTam OAuth2 implementasyonuJWT⭐⭐⭐MikroservislerStateless, çoklu dil desteği
6. Güvenlik Best Practices 🛡️
- HTTPS zorunlu tutun
- Token sürelerini kısa tutun (Refresh token kullanın)
- Rate limiting uygulayın
- Sensitive datayı filtreleyin
- CORS ayarlarını doğru yapılandırın
// Sanctum token süresi ayarı
Sanctum::authenticateAccessTokensUsing(function ($accessToken, $isValid) {
return $isValid && $accessToken->created_at->gt(now()->subDays(7));
});
7. Pratik Kullanım Örnekleri 🛠️
Sanctum ile SPA Kimlik Doğrulama
// app/Http/Kernel.php
'api' => [
\Laravel\Sanctum\Http\Middleware\EnsureFrontendRequestsAreStateful::class,
'throttle:api',
// ...
]
Passport ile API Gateway
// OAuth scope kontrolü
Route::get('/orders', function () {
if (auth()->user()->tokenCan('orders:read')) {
return Order::all();
}
abort(403);
});
Sağlam API Güvenliği 🔒
Doğru kimlik doğrulama yöntemiyle:
- Kullanıcı verilerini koruyun 🛡️
- API erişimini kontrol edin 🚦
- Güvenlik açıklarını önleyin 🚨
Hangi kimlik doğrulama yöntemini kullanıyorsunuz? Yorumlarda paylaşın! 💬
Bir sonraki yazımız: 🚀 [Laravel'de API Testing: Postman ve PHPUnit ile Test Etme] - API'nizi nasıl test edeceğinizi öğrenin!
#Laravel #APISecurity #Authentication #WebDevelopment #Backend 🔐
+(49).png&w=320&q=50)


