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

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

Шаги по добавлению токена для авторизованного пользователя:
1. Установите пакет Passport с помощью Composer, выполнив следующую команду в терминале:

composer require laravel/passport

2. Затем выполните миграции, чтобы создать необходимые таблицы в базе данных:

php artisan migrate

3. Затем выполните команду, чтобы установить ключ шифрования:

php artisan passport:install

4. После установки Passport, вам нужно зарегистрировать ServiceProvider. В файле config/app.php найдите массив providers и добавьте следующую строку:

LaravelPassportPassportServiceProvider::class

5. Далее выполняются необходимые настройки в файле config/auth.php. В массиве guards замените api на passport, чтобы ваше приложение использовало Passport в качестве аутентификационного драйвера:

'guards' => [
    'web' => [
        'driver' => 'session',
        'provider' => 'users',
    ],
    'api' => [
        'driver' => 'passport',
        'provider' => 'users',
    ],
],

6. В модели пользователя User подключите трейт LaravelPassportHasApiTokens. Этот трейт добавит необходимые методы для работы с токенами API:

use LaravelPassportHasApiTokens;

class User extends Authenticatable
{
    use HasApiTokens;
    ...
}

7. Выполните миграции для обновления схемы таблицы пользователей:

php artisan migrate

8. Далее выполняются дополнительные настройки для маршрутов аутентификации. Откройте файл app/Http/Kernel.php и добавьте следующий middleware в массив $routeMiddleware:

'auth:api' => LaravelPassportHttpMiddlewareCheckForAnyScope::class,

9. Выполните команду passport:client для создания клиентского ID и секретного ключа:

php artisan passport:client --password

10. Завершите настройку добавив следующую конфигурацию в файле 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.