Как обрабатывать "unsupported_grant_type" из laravel паспорта - PullRequest
1 голос
/ 30 января 2020

Я играю с laravel и пытаюсь включить предоставление учетных данных клиента для защиты некоторых конечных точек API.

Для обеспечения некоторого контекста: Я хочу создать API, стоящий между базой данных и несколькими веб-сайтами (и SPA). Так что я смогу провести некоторый мониторинг (что называет веб-сайт / SPA, какие ресурсы) и вообще добавить некоторую безопасность. Таким образом, в этом случае, когда не требуется дополнительная информация для пользователя, лучшим подходом должно быть предоставление клиентских учетных данных для связи между компьютерами.

Я следовал инструкциям кого-то (например, это учебное пособие ) реализовать эти типы грантов, но я застрял ...

Я сделал следующее:

  • паспорт загрузки: composer require laravel/passport
  • добавьте поставщика услуг в config/app.php: Laravel\Passport\PassportServiceProvider::class,
  • миграция: php artisan migrate
  • установка: php artisan passport:install
  • добавление HasApiTokens к App\User.php
  • добавление Passport::routes() to app/Providers/AuthServiceProvider.php
  • последний, но не менее важный параметр драйвера для защиты аутентификации: passport in config/auth.php

Пока все хорошо. Теперь я создал образец клиента с php artisan passport:client:

New client created successfully.
Client ID: 3
Client secret: S5s9oEIRm5DNy5ySsr1H6jWlraOCZyF24gcpoDrJ

Теперь, когда я хочу получить токен для этого клиента с помощью почтальона (добавлен в body.formdata, как указано здесь ) postman: call oauth/token

Я получаю следующую ошибку.

{
    "error": "unsupported_grant_type",
    "error_description": "The authorization grant type is not supported by the authorization server.",
    "hint": "Check that all required parameters have been provided",
    "message": "The authorization grant type is not supported by the authorization server."
}

Я что-то упустил? Я думал, что сделал все необходимые шаги, чтобы зарегистрировать grant type?

Спасибо заранее !!

Ответы [ 2 ]

0 голосов
/ 02 февраля 2020

Вы ошиблись grant_type. На скриншоте написано grand_type.

0 голосов
/ 30 января 2020

, как вы упомянули, это для SPA, поэтому

Попробуйте это

grant_type: "password"
client_id:3
username:"your email"
password: "your password"
scope: "*"

вставьте это в свой почтальон

, таким образом вы получите access token и refresh token для указанного пользователя

ссылка ссылка https://laravel.com/docs/5.8/passport#requesting -password-grant-tokens

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...