Как добавить добавить токен для авторизованного пользователя?

В Laravel для авторизации пользователя и предоставления токена, вы можете использовать пакет Passport. Passport - это полноценный пакет для аутентификации API, который позволяет легко добавить аутентификацию через токены в вашу Laravel приложение.

Шаги по добавлению токена для авторизованного пользователя:

  1. Установите пакет Passport с помощью Composer, выполнив следующую команду в терминале:
composer require laravel/passport
  1. Затем выполните миграции, чтобы создать необходимые таблицы в базе данных:
php artisan migrate
  1. Затем выполните команду, чтобы установить ключ шифрования:
php artisan passport:install
  1. После установки Passport, вам нужно зарегистрировать ServiceProvider. В файле config/app.php найдите массив providers и добавьте следующую строку:
LaravelPassportPassportServiceProvider::class
  1. Далее выполняются необходимые настройки в файле config/auth.php. В массиве guards замените api на passport, чтобы ваше приложение использовало Passport в качестве аутентификационного драйвера:
'guards' => [
    'web' => [
        'driver' => 'session',
        'provider' => 'users',
    ],
    'api' => [
        'driver' => 'passport',
        'provider' => 'users',
    ],
],
  1. В модели пользователя User подключите трейт LaravelPassportHasApiTokens. Этот трейт добавит необходимые методы для работы с токенами API:
use LaravelPassportHasApiTokens;

class User extends Authenticatable
{
    use HasApiTokens;
    ...
}
  1. Выполните миграции для обновления схемы таблицы пользователей:
php artisan migrate
  1. Далее выполняются дополнительные настройки для маршрутов аутентификации. Откройте файл app/Http/Kernel.php и добавьте следующий middleware в массив $routeMiddleware:
'auth:api' => LaravelPassportHttpMiddlewareCheckForAnyScope::class,
  1. Выполните команду passport:client для создания клиентского ID и секретного ключа:
php artisan passport:client --password
  1. Завершите настройку добавив следующую конфигурацию в файле config/auth.php:

В массиве providers добавьте драйвер для аутентификации по токену:

'api' => [
    'driver' => 'passport',
    'provider' => 'users',
],

И в массиве guards добавьте новую защиту для аутентификации по токену:

'api' => [
    'driver' => 'passport',
    'provider' => 'users',
],

Теперь вы можете использовать маршрутизацию и контроллеры в вашем API, добавив middleware auth:api для защиты маршрутов, которые требуют аутентификации. Например:

Route::get('/user', function (Request $request) {
    return $request->user();
})->middleware('auth:api');

Этот маршрут будет требовать токен аутентификации пользователя.

Теперь, когда пользователь успешно аутентифицирован, вы сможете предоставить токен доступа, используя метод createToken на экземпляре модели пользователя:

$accessToken = $user->createToken('Token Name')->accessToken;

Токен будет автоматически возвращен в ответе для пользователя.

Это основные шаги по добавлению токена для авторизованного пользователя в Laravel, используя пакет Passport.