Обновление токенов на получение пароля для паспорта

Я выполняю шаги, описанные в этих вопросах:

Паспорт Laravel 5.3 и маршруты API < / сильный>

Все отлично работает с маршрутами api, я могу регистрировать новых пользователей, читать их данные и т. Д. И т. Д.

Затем добавьте эту команду в AuthServiceProvider

Passport :: tokensExpireIn (Carbon :: now () - ›addMinute (2)); Passport :: refreshTokensExpireIn (Carbon :: now () - ›addDays (1));

я вхожу в почтальон по URL-адресу {{url}} / oauth / token

Body: application / x-www-form-urlencoded
{
grant_type: 'password'
client_id: {{адрес электронной почты, под которым зарегистрирован пользователь}}
client_secret: {{генерировать секрет клиента из мобильного приложения}}
имя пользователя: {{адрес электронной почты, под которым зарегистрирован пользователь}}
пароль: {{пароль, введенный пользователем}}
область действия: ''
}

ответ его успешный

{
token_type: Bearer
expires_in: 120
access_token: {{access_token}}
refresh_token: {{refresh_token}}
}

Я пытаюсь обновить время жизни токена до одного дня и отправить его на {{url}} / oauth / token

ref = ›https://laravel.com/docs/5.3/passport#refreshing-tokens

в почтальоне я отправляю

Заголовки:

Авторизация: предъявитель {{the access_token}}

Body: application / x-www-form-urlencoded
{
client_secret: {{генерировать секрет клиента из мобильного приложения}}
grant_type: refresh_token
refresh_token: {{the refresh_token}} < br> client_id: {{адрес электронной почты, с которым зарегистрирован пользователь}}
scope: ''
}

Ожидаемый ответ:

{
access_token: {{new access_token}}
token_type: 'Bearer'
expires_in: 86400
refresh_token: {{new access_token}}
}

Но это не работает, как ожидалось, ответ его

{
access_token: {{new access_token}}
token_type: 'Bearer'
expires_in: 120
refresh_token: {{new access_token}}
}


person Juan Ibarra    schedule 25.11.2016    source источник


Ответы (2)


Потому что вы создаете access_token, используя refresh_token. Таким образом, он показывает время истечения access_token, т.е. 2 минуты, которое задается этой строкой:

Passport::tokensExpireIn(Carbon::now()->addMinute(2));
person Aysha Jagiasi    schedule 02.01.2017

Кроме того, вы должны отправлять идентификатор клиента (целое число поля id) из таблицы oauth_clients ... а не адрес электронной почты вашего клиента

person bgies    schedule 09.01.2017