API Authentication, kullanıcıların kimliğini doğrulama sürecidir:
// Yetkisiz erişim örneği Route::get('/profile', function () { return auth()->user()->profile; })->middleware('auth:api');
composer require laravel/sanctum php artisan vendor:publish --provider="Laravel\Sanctum\SanctumServiceProvider"
$token = $user->createToken('api-access', ['posts:read'])->plainTextToken;
GET /api/user Authorization: Bearer 1|AbCdEfGhIjKlMnOpQrStUvWxYz0123456789
composer require laravel/passport php artisan passport:install
Route::post('/oauth/token', '\Laravel\Passport\Http\Controllers\AccessTokenController@issueToken');
POST /oauth/token grant_type=password&client_id=1&client_secret=...&username=user@example.com&password=...
composer require tymon/jwt-auth
$token = auth('api')->attempt(['email' => $email, 'password' => $password]);
try { $user = auth('api')->user(); } catch (\Tymon\JWTAuth\Exceptions\TokenExpiredException $e) { return response()->json(['error' => 'Token expired'], 401); }
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
// Sanctum token süresi ayarı Sanctum::authenticateAccessTokensUsing(function ($accessToken, $isValid) { return $isValid && $accessToken->created_at->gt(now()->subDays(7)); });
// app/Http/Kernel.php 'api' => [ \Laravel\Sanctum\Http\Middleware\EnsureFrontendRequestsAreStateful::class, 'throttle:api', // ... ]
// OAuth scope kontrolü Route::get('/orders', function () { if (auth()->user()->tokenCan('orders:read')) { return Order::all(); } abort(403); });
Doğru kimlik doğrulama yöntemiyle:
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 🔐