Как в Laravel с использованием пакета Passport добавить дополнительные данные в генерируемый токен?

Как добавить пользовательскую информацию в токен, чтобы потом извлечь ее при его декодировании?
  • 6 мая 2024 г. 18:30
Ответы на вопрос 2
Для добавления дополнительных данных в генерируемый токен в Laravel с использованием пакета Passport можно воспользоваться методом `withClaims()` класса `Laravel\Passport\PersonalAccessTokenResult`.

Ниже приведен пример кода, который добавляет дополнительные данные в токен при создании:

```php
use Laravel\Passport\PersonalAccessTokenResult;

$user = Auth::user();

$token = $user->createToken('Token Name')->withClaims([
    'custom_data_key' => 'custom_data_value',
])->accessToken;
```

В данном примере, метод `withClaims()` принимает ассоциативный массив с дополнительными данными, которые будут добавлены в токен.

При декодировании токена можно получить пользовательскую информацию следующим образом:

```php
use Illuminate\Support\Facades\Http;

$response = Http::withHeaders([
    'Authorization' => 'Bearer ' . $token,
])->get('http://your-api-route');

$customData = $response->json();
```

Получив ответ от защищенного маршрута с токеном, можно извлечь пользовательскую информацию из `custom_data_key`.
ты по токену получаешь пользователя. Модель User. Можешь делать с ней всё, что угодно.
Похожие вопросы