【发布时间】:2015-11-23 10:56:55
【问题描述】:
这个卷发很好用
curl acme:acmesecret@localhost:9999/uaa/oauth/token -d "password=password&username=user&grant_type=password" -H "Accept: application/json"
在此 curl 中,acme 和 acmesecret 是客户端凭据,应用程序使用该凭据向运行在 localhost:9999 中的授权服务器进行身份验证
我正在尝试使用邮递员(chrome 的休息客户端)发出相同的请求。
这是屏幕截图(我在基本身份验证选项卡中输入了凭据)
这是发出的请求的预览:(注意:添加了授权基本标头)
我收到错误为“invalid_client”。如何解决这个问题?
谢谢
【问题讨论】:
-
在您的 curl 请求中,您在表单数据中有 user's 凭据(这是正确的),但在 Postman 请求中,您正在放置客户端的凭据。您是否不小心切换了凭据?客户端凭据应放在 auth 标头中,而用户凭据应放在表单数据中
-
否则,用户凭据应作为基本摘要标头。您可以在上面的预览图像中看到。客户端 ID 和密码以
acme:acmesecret@localhost:...发送。我想知道如何在邮递员中发送这个。 -
如果 acme 是 client_id 并且 acmesecret 是 client_secret,并且您正在发出 oauth 2.0 密码授予请求,则 client_id:client_credentials 进入 auth 标头。您的 curl 请求在 auth 标头中发送它们。添加
-i开关以查看标题。然后在 Postman 中进行更改,您应该会在 auth 标头中看到相同的 base64。 -
-d是表单数据。在 oauth 2.0 密码授予请求中,用户凭据应该进入表单数据,如 curl 请求所示 -
谢谢。这有帮助。我按照您的建议进行了操作,现在可以使用了。
标签: curl rest-client postman