如何在 Postman 的 Oauth2 中使用 id_token 而不是 access_token?

Posted

技术标签:

【中文标题】如何在 Postman 的 Oauth2 中使用 id_token 而不是 access_token?【英文标题】:How to use id_token instead of access_token in Oauth2 in Postman? 【发布时间】:2019-07-19 21:52:04 【问题描述】:

我最近开始使用 Postman,并开始测试使用 AWS Cognito 保护的终端节点。我已经在 Postman 中正确设置了 OAuth 2.0 授权部分,并且收到了包含 3 种令牌类型的响应:id_token、access_token 和 refresh_token。默认情况下,Postman 将 access_token 放在 Authorization 标头中,我需要使用 id_token。有什么方法可以从响应中提取 id_token 并在我的请求中使用它?我认为应该有一种方法可以将它传递给全局/环境变量,这样我就可以使用它自己定义标题。

【问题讨论】:

id_token 不是 oauth2 的一部分。 oauth 中没有身份管理,只有授权一个。 我明白了。我的问题之一是邮递员在成功授权后默认使用一种令牌。只有一个“使用令牌”选项采用 access_token。 这也是我面临的问题。我需要获取作为 id_token 提供的 JWT,并将其用于 API 授权 【参考方案1】:

您可以先创建两个请求以获取 id_token 并设置环境变量,然后在标头中使用该变量检查您的端点。

您可以使用tests(AKA 请求后脚本)提取 id_token 并创建和设置环境变量。然后在标头中的下一个请求中使用它作为 your_variable name。

更多详情请见https://learning.getpostman.com/docs/postman/scripts/test_examples/。

【讨论】:

我设法创建了一个单独的 GET 和 POST 请求。我可以传递授权代码,然后获得正确的 json 响应,我可以在其中选择要使用的令牌,但新问题是我仍然必须通过 Postman 中的授权面板手动登录到 AWS Cognito。 @escape_artist 您在第二个请求中使用了哪个身份验证? 我正在使用 .amazoncognito.com/oauth2/token @escape_artist 根据您最初的问题,您需要获得的 id_token。您必须根据 Amazon Cognito 文档在每个请求中添加 access_token。那么您目前从邮递员那里面临的问题是什么?

以上是关于如何在 Postman 的 Oauth2 中使用 id_token 而不是 access_token?的主要内容,如果未能解决你的问题,请参考以下文章

使用postman测试oauth2.0认证服务中出现OAuth出现Bad credentials

使用Postman访问OAuth2保护的WebAPI

使用 Postman 的简单 Spring Oauth2 流程

无法在POSTMan上获取Google oAuth 2令牌

Postman-OAuth 2.0授权

使用 Postman 的 Salesforce 集成 INVALID_SESSION_ID