Laravel Паспорт invalid_grant для пароля grant_type - PullRequest
1 голос
/ 08 февраля 2020

Я пытался создать access_token для моего API. Я следовал за настройкой и использую Почтальон для тестирования / создания токена. Кажется, я не могу пройти мимо ошибки invalid_grant.

Я пробовал то, что кажется каждой комбинацией, которую я смог найти без удачи. Вот мои настройки:

Отправка POST запроса на: http://mywebsite.local/oauth/token

В теле я задаю form-data для этого (имя / значение):

grant_type      password
client_id       1
client_secret   <super_long_string>
username        my@email.com
password        secret

Я использовал тинкер для создания фиктивного пользователя:

factory('App\User')->create()

Я использую недавно созданного пользователя для своего имени пользователя / пароля выше.

Независимо от того, что я делать (если не передать ничего) это ошибка, которую я всегда вижу:

{
    "error": "invalid_grant",
    "error_description": "The provided authorization grant (e.g., authorization code, resource owner credentials) or refresh token is invalid, expired, revoked, does not match the redirection URI used in the authorization request, or was issued to another client.",
    "hint": "",
    "message": "The provided authorization grant (e.g., authorization code, resource owner credentials) or refresh token is invalid, expired, revoked, does not match the redirection URI used in the authorization request, or was issued to another client."
}

Я много раз читал, это означает, что grant_type, который я пытаюсь получить, не совпадает клиенту. Я использую php artisan passport:client --password для создания клиента, поэтому я не понимаю, почему он недействителен. У меня только один клиент, поэтому я знаю, что использую правильный id. Эта проблема выглядит, как и я, но с тех пор закрыта.

Для моих заголовков я только устанавливаю Content-Type application/json, и у меня ничего не установлено для заголовков авторизации.

Я не уверен, что еще можно попробовать. Спасибо за любые предложения!

Ответы [ 2 ]

1 голос
/ 12 февраля 2020

как указано здесь , начиная с версии 5.8 пароль по умолчанию "secret" был обновлен до "password". поэтому вы вводите старый пароль.

0 голосов
/ 24 апреля 2020

Попробуйте sh ваш пароль для пользователя. Сначала я думаю, что пароль должен быть не менее 8 символов. Затем, например, если вы используете «test1234» в качестве пароля для созданного пользователя, go для вашего терминала и введите:

>> php artisan tinker

>> echo bcrypt ('test1234')

Скопируйте вывод и сохраните его в столбце базы данных паролей созданного пользователя вместо test1234. Теперь ваш почтовый запрос на http://mywebsite.local/oauth/token должен работать.

...