Curl 如何在postman中传递客户端凭据?

Curl 如何在postman中传递客户端凭据?,curl,rest-client,postman,Curl,Rest Client,Postman,这个卷发很好用 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 我正试图使用postman(用于chrome的rest客户端)提出同样的请求 这是屏幕截

这个卷发很好用

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

我正试图使用postman(用于chrome的rest客户端)提出同样的请求

这是屏幕截图(我在“基本身份验证”选项卡中输入了凭据)

下面是发送的请求的预览:(注意:添加了AUthorization basic标头)

我收到的错误为“无效的\u客户端”。如何解决这个问题

谢谢你

acme:acmesecret@localhost:9999/uaa/oauth/token
acme:acmescret
是在基本身份验证头中发送的HTTP客户端凭据。您可以添加
-v
开关以查看请求中的标题

-d "password=password&username=user&grant_type=password"
这是表单数据

在邮递员请求中,您已将其切换。您在表单数据中有客户端凭据,我猜您在auth头中有用户凭据


换一下就行了。对于OAuth 2.0密码授予请求,客户端凭据应该放在auth头中,而用户凭据放在表单数据中。

我从邮递员文档中发现这条信息非常有用,以防其他人需要更多说明

邮递员>发送API请求>授权

在curl请求中,用户的凭据保存在表单数据中(这是正确的),但在Postman请求中,您正在放置客户端的凭据。你是不是不小心切换了凭据?客户端凭据应放在auth头中,而用户凭据应放在datait形式中。否则,用户凭据应放在basic digest头中。您可以在上面的预览图像中看到这一点。客户端id和密码作为
acme:acmesecret@localhost:…
。我想知道如何在邮递员中发送此消息。如果acme是客户端id,AcmesCret是客户端机密,并且您正在发出oauth 2.0密码授予请求,那么客户端id:client\u凭据将出现在auth标头中。您的curl请求正在auth头中发送它们。添加
-i
开关以查看标题。然后在Postman中进行更改,您应该在auth标题中看到相同的base64。
-d
是表单数据。在OAuth2.0密码授予请求中,用户凭证应该以curl请求所示的形式放入数据中。这很有帮助。我按照您的建议进行了操作,现在正在运行。通过添加-I,我没有看到授权标头。我只看到HTTP/1.1200ok服务器:apachecoyote/1.1x-Content-Type-Options:nosniff X-XSS-Protection:1;模式=块缓存控制:无缓存,无存储,最大年龄=0,必须重新验证Pragma:no Cache Expires:0 X-Frame-Options:DENY Cache Control:no store Pragma:no Cache Content Type:application/json;charset=UTF-8传输编码:分块日期:2015年8月28日星期五18:06:24 GMT是的,我想它不是那样工作的。我一定弄错了。不过,它仍然是HTTP凭据的一部分。这在规范中。无论如何,不鼓励将凭据放在URL中。与curl相反,您使用
-u username:password
,它将出现在标题中。如果您希望更安全,并且不想在shell历史记录中存储密码,只需使用
-u username
,它将提示输入密码哦,这就是响应。检查请求头。也许它就在那里。我不知道。您看到的是请求头还是响应头?如果仅请求,请使用
-v
(详细)开关。请求以
开头,而响应以
开头,因此当您将凭据放入url?@peeskillet时,标头就在那里。我正在尝试通过Postman“POST”使用API url执行基本登录操作https:///TestDataManager/user/login“使用基本身份验证。我可以登录访问门户,但不能通过API调用登录。我是否需要拥有通过API与服务器/应用程序通信的特殊权限?我现在得到的回答是401错误。