Laravel Sanctum: безопасная аутентификация API стала проще

Привет, ребята! Сегодня мы собираемся погрузиться в чудесный мир Laravel Sanctum и изучить различные методы, которые он предлагает для обеспечения аутентификации API. Laravel Sanctum — мощный пакет, который упрощает процесс аутентификации запросов API в приложениях Laravel. Итак, хватайте любимый напиток, устраивайтесь поудобнее и приступайте!

  1. Установка:
    Для начала нам нужно установить Laravel Sanctum в наш проект Laravel. Откройте терминал, перейдите в каталог вашего проекта и выполните следующую команду:

    composer require laravel/sanctum
  2. Конфигурация:
    После установки нам необходимо настроить Laravel Sanctum. Откройте файл config/auth.phpи добавьте стражу святилища в массив guards:

    'guards' => [
    'sanctum' => [
        'driver' => 'sanctum',
        'provider' => 'users',
    ],
    ],
  3. Генерация токенов API.
    Далее давайте сгенерируем токены API для наших пользователей. В вашу модель Userдобавьте признак HasApiTokens:

    use Laravel\Sanctum\HasApiTokens;
    class User extends Authenticatable
    {
    use HasApiTokens;
    // ...
    }
  4. Аутентификация запросов.
    Для аутентификации запросов API вы можете использовать промежуточное программное обеспечение auth:sanctum. Примените его к своим маршрутам API в файле routes/api.php:

    Route::middleware('auth:sanctum')->group(function () {
    // Your protected routes here
    });
  5. Аутентификация на основе токенов.
    Laravel Sanctum предоставляет удобный способ аутентификации запросов с использованием токенов API. По умолчанию Sanctum ожидает, что токен будет отправлен в заголовке Authorizationкак токен Bearer. Вы можете получить токен, вызвав метод createTokenдля вашего аутентифицированного пользователя:

    $token = $user->createToken('token-name')->plainTextToken;
  6. Отзыв токенов.
    Если вам когда-нибудь понадобится отозвать токен API пользователя, вы можете просто вызвать метод tokens()->delete()для аутентифицированного пользователя:

    $user->tokens()->delete();
  7. Возможности токенов:
    Laravel Sanctum позволяет вам определять способности или разрешения для ваших токенов. Вы можете определить их в методе bootвашего SanctumServiceProvider:

    use Laravel\Sanctum\Sanctum;
    public function boot()
    {
    Sanctum::usePersonalAccessTokenModel(YourTokenModel::class);
    Sanctum::allowAbility('admin');
    parent::boot();
    }

Вот и все! Мы рассмотрели некоторые важные методы, предоставляемые Laravel Sanctum для обеспечения аутентификации API в ваших приложениях Laravel. Помните, это лишь верхушка айсберга, и вам предстоит еще многое узнать!

В заключение отметим, что Laravel Sanctum — это фантастический пакет, который упрощает аутентификацию API в проектах Laravel. Следуя методам, которые мы обсудили, вы можете обеспечить безопасную и надежную аутентификацию для своих API. Приятного кодирования!