Маркер обновления паспорта Laravel - PullRequest
0 голосов
/ 14 декабря 2018

Я использую Laravel версии 5.5 с использованием Passport для аутентификации.Я успешно создал токен и могу получить к нему доступ с помощью промежуточного программного обеспечения auth:api.

Но всякий раз, когда пользователь входит в систему, он создает новый токен для этого пользователя.Я просто хочу обновить последний токен пользователя и отправить его обратно вместо создания нового токена.

Я использовал следующий код для генерации токена авторизации

$token = $user->createToken('string-'.$user->id)->accessToken;

Он генерирует токен с 1075символов, но когда я проверил в таблице базы данных oauth_access_tokens, он показывает мне токен с 80 символами.

Как я могу получить последний сгенерированный токен с использованием токена из 80 символов, обновить его и отправить обратно?

Заранее спасибо

1 Ответ

0 голосов
/ 14 декабря 2018

Если ваше приложение выдает недопустимые токены доступа, пользователям необходимо обновить свои токены доступа с помощью токена обновления, который был предоставлен им при выдаче токена доступа.В этом примере мы будем использовать HTTP-библиотеку Guzzle для обновления токена:

$http = new GuzzleHttp\Client;

$response = $http->post('http://your-app.com/oauth/token', [
    'form_params' => [
        'grant_type' => 'refresh_token',
        'refresh_token' => 'the-refresh-token',
        'client_id' => 'client-id',
        'client_secret' => 'client-secret',
        'scope' => '',
    ],
]);

return json_decode((string) $response->getBody(), true);

Этот маршрут /oauth/token возвратит ответ JSON, содержащий атрибуты access_token, refresh_token и expires_in.Атрибут expires_in содержит количество секунд до истечения срока действия токена доступа.

...