Laravel Passport - 不支持授权类型

时间:2016-12-30 15:54:14

标签: laravel-5.3 laravel-passport

我已根据文档安装了Laravel Passport,并且我修改了所需的所有代码区域。

我正在设置密码授予令牌,以便用户在使用他们的站点用户名和密码登录时能够获得API令牌。当涉及到grant_type时,我遇到了一个问题。 出于某种原因,Laravel抱怨无效的授权类型。

{
  "error": "unsupported_grant_type",
  "message": "The authorization grant type is not supported by the authorization server.",
  "hint": "Check the `grant_type` parameter"
}

这些是我发布到/oauth/token

的字段
client_id = 4
client_secret = SMiYE7XqDNtXKQnmkYmFnXxfAaV83vRhnJ9zwCtZ
username = jcrawford@domain.com
password = **************
grant_type = password
scope = *

我已经运行php artisan passport:install,我也试过运行php artisan passport:client --password

两个命令都有效,并且都创建了客户端和秘密,但是,我似乎无法通过关于grant_type的错误。

有关我应该注意什么的建议,以便密码授予令牌对我有效?

4 个答案:

答案 0 :(得分:27)

看来您必须将参数作为表单数据发送,而不是像我一样发送到标题中...新手错误!

答案 1 :(得分:5)

我正在使用Postman,并将所有参数都放在Params中。邮递员显示以下回复

{
    "error": "unsupported_grant_type",
    "message": "The authorization grant type is not supported by the authorization server.",
    "hint": "Check the `grant_type` parameter"
}

现在我将所有参数都放在“正文”中,然后按“发送”按钮,效果很好。

答案 2 :(得分:1)

对我来说,问题是我没有使用state,而是使用我创建的Request $request $ request。

答案 3 :(得分:0)

初始网址

https://restfulapi.test/oauth/authorize?client_id=3&redirect_url=http://restfulapi.test?response_type=code

解决方案

https://restfulapi.test/oauth/authorize?client_id=3&redirect_url=http://restfulapi.test&response_type=code

我必须使用&

替换response_type之前的问号