 (49).png)
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 🔐