Laravel Passport Пароль Предоставить Пароль Обновления

Попытка обернуть мою голову, используя Паспорт Laravel с мобильными клиентами. Вид аутентификации типа «Предоставление пароля», кажется, является подходящим способом, и у меня есть его работа с моим приложением для iOS, однако я не могу получить обновление токена для работы.

При аутентификации я получаю token и refresh token который я храню, однако, когда токен истекает, вызывая oauth/token/refresh Маршрут не работает. Маршрут использует web промежуточное ПО, которое означает, что мое приложение, использующее маршрут API, не может получить к нему доступ. Я не уверен, предназначались ли они для мобильных клиентов, чтобы они никогда не обновлялись, или они хотели, чтобы вы катали свои собственные обновления? Если у кого-то есть понимание того, как это должно работать, это было бы здорово.

3

Решение

oauth/token/refresh Маршрут не предназначен для обновления токенов доступа. Он используется для обновления временных токенов, которые используются, когда вы используете свой собственный API из своего JavaScript.

Чтобы использовать ваш refresh_token чтобы обновить свой токен доступа, вам нужно вызвать oauth/token маршрут с grant_type из refresh_token,

Это пример, предоставленный документация:

$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);

Одно замечание о областях: при обновлении токена вы можете получить только идентичные или более узкие области, чем исходный токен доступа. Если вы попытаетесь получить область, которая не была предоставлена ​​исходным токеном доступа, вы получите сообщение об ошибке.

7

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]