Laravel Sanctum — это мощный пакет, обеспечивающий простой и безопасный способ аутентификации API в приложениях Laravel. Он позволяет вам выпускать токены, которые можно использовать для аутентификации и авторизации запросов API. В этой статье мы рассмотрим различные методы выпуска токенов с помощью Laravel Sanctum, а также приведем примеры кода для каждого метода.
Метод 1: токены личного доступа
Laravel Sanctum предлагает удобный способ выдачи токенов личного доступа. Эти токены связаны с конкретным пользователем и могут использоваться для аутентификации запросов API от имени этого пользователя. Вот пример того, как выдать токен личного доступа:
use App\Models\User;
use Illuminate\Http\Request;
Route::middleware('auth:sanctum')->get('/tokens', function (Request $request) {
$user = $request->user();
$token = $user->createToken('My Token')->plainTextToken;
return ['token' => $token];
});
Метод 2: токены API
Помимо токенов личного доступа, Laravel Sanctum поддерживает токены API. Токены API обычно используются для аутентификации, когда нет конкретного пользовательского контекста. Вот пример того, как выпустить токен API:
use Illuminate\Http\Request;
use Laravel\Sanctum\Sanctum;
Route::middleware('auth:sanctum')->get('/tokens', function (Request $request) {
Sanctum::actingAs(
null, // No specific user context
['my-scope'] // Optional: define scopes for the token
);
$token = $request->bearerToken();
return ['token' => $token];
});
Метод 3: срок действия и отзыв токенов
Laravel Sanctum позволяет вам установить срок действия выданных токенов. При необходимости вы также можете отозвать токены. Вот пример того, как выпустить токен со сроком действия и отозвать его:
use App\Models\User;
use Illuminate\Http\Request;
use Illuminate\Support\Carbon;
Route::middleware('auth:sanctum')->get('/tokens', function (Request $request) {
$user = $request->user();
$token = $user->createToken('My Token', ['my-scope'])
->expiresAt(Carbon::now()->addDays(7))
->plainTextToken;
// Revoke the token
$user->tokens()->where('id', $token->id)->delete();
return ['token' => $token];
});
В этой статье мы рассмотрели различные способы выпуска токенов с помощью Laravel Sanctum. Мы рассмотрели выпуск токенов личного доступа, токенов API, а также управление сроком действия и отзывом токенов. Используя эти методы, вы можете повысить безопасность и аутентификацию своих API-интерфейсов Laravel, гарантируя обработку только авторизованных запросов.
Не забывайте тщательно реализовывать выпуск токенов и аутентификацию, учитывая конкретные требования вашего приложения и соображения безопасности.