我如何通过 Postman 使用令牌验证 API 请求

时间:2021-05-13 10:56:57

标签: jwt postman identityserver4

我正在尝试使用 Postman 在我从以前的开发人员那里继承的项目上测试 Web API。到目前为止,我所知道的只是使用 ASP.Net Identity and Identity Server 4.0 配置了身份验证,该服务器实现了 OAuth 并发布了短期的 JSON Web 令牌 (JWT) 和刷新令牌。

如果我导航到开发网站,登录(成功),并使用 Chrome 开发者工具检查初始登录请求,我可以看到请求的正文包含一个包含 3 个字段的表单; userNamepasswordreturnUrl。如果我右键单击请求,我可以将请求复制为 cURL (bash),并且在 Postman 中我可以导入数据以创建新请求。如果我发送请求,我会返回 status 200 OK 并且响应包含 6 个 cookie。但是,响应正文包含 Postman 无法呈现的 htlm 页面和消息 You need to enable JavaScript to run this app.

我现在不知道如何使用响应来验证对某些数据的请求。我需要的令牌是否包含在其中一个 cookie 中?如何提取令牌并在请求某些数据时使用它?非常欢迎任何意见或建议。

1 个答案:

答案 0 :(得分:0)

通常,在浏览器中启用 JavaScript 后,<form> 会使用 action 自动发布到其在 method 中定义的目的地。 JavaScript 会做类似以下的事情:

window.addEventListener('load', function(){document.forms[0].submit();});

因此,如果没有 JavaScript,您需要以某种方式解析收到的 form 并重新创建等效请求。

成功登录后收到的 form 包含应发送回您的原始网站以验证最终用户身份的数据。

例如,表单的正文包含隐藏的输入字段,由 OpenID 协议定义:

...
<input type='hidden' name='token_type' value='Bearer' />
<input type='hidden' name='expires_in' value='600' />
...

表单 action 属性指向您网站上的 sign-in 端点。例如:

<form method='post' action='https://{hostname:post}/signin-oidc'>