邮递员 - 无法使用 client_credentials grant_type 发送请求

Dev*_*per 8 postman

图像我正在尝试使用 Postman 工具从 Microsoft Graph API 获取 accessToken。我正在授权选项卡中使用 Type=oauth2.0 进行尝试,以便我可以使用此 accessToken 进行后续的 Get、Post 请求。

如果 grant_type 是“授权代码”,则一切正常。但是当 grant_type 是client_credentials时,邮递员会抛出以下错误

从 client_credentials 流获取访问令牌时出错。无法发送请求

我查看了 DeveloperTools 中的“网络”选项卡,它没有为 client_credentials 流程提交 Client_Id、Client_Secret。

问题: 如何让 Postman 为client_credentials grant_type 场景工作?

我在这里错过了任何步骤吗?请指导我..

谢谢

Eva*_*ler 8

我在这方面迟到了,但希望如果其他人寻找这个,他们可以找到它,因为我们遇到了同样的问题。

前两个答案(/sf/answers/4599568851//sf/answers/3518910391/)引导我们走向正确的方向,但我们仍然必须翻译它才能正常工作在邮递员中:

正如 Mahmoud 提到的,您可以发送client_idclient_secret作为基本身份验证: 基本身份验证

主要部分是处理grant_type好像client_credentials。为此,我们输入:

grant_type=client_credentials在请求的正文中。

单击正文 > 选择 x-www-form-urlencoded > key =grant_type和 value = client_credentials

完成后,“正文”选项卡应如下所示: “正文”选项卡

希望这有帮助!


小智 1

尝试提供以下详细信息:

Request Type: POST
URL: https://XXXXXXXXXXXXXXXXXXXXXXXX/token?grant_type=client_credentials
Authorization: Basic [client_id]:[client_secret]
Content-Type: application/x-www-form-urlencoded
Run Code Online (Sandbox Code Playgroud)

输出应如下所示:

{
    "access_token": "90778b6abce64fc124892ce66f7a8ecd",
    "token_type": "Bearer",
    "expires_in": 60,
    "scope": ""
}
Run Code Online (Sandbox Code Playgroud)

注意:以 BASE64Encoded 形式提供[client_id]:[client_secret]