我正在尝试使用 Postman 在我从以前的开发人员那里继承的项目上测试 Web API。到目前为止,我所知道的只是使用 ASP.Net Identity and Identity Server 4.0 配置了身份验证,该服务器实现了 OAuth 并发布了短期的 JSON Web 令牌 (JWT) 和刷新令牌。
如果我导航到开发网站,登录(成功),并使用 Chrome 开发者工具检查初始登录请求,我可以看到请求的正文包含一个包含 3 个字段的表单; userName
、password
和 returnUrl
。如果我右键单击请求,我可以将请求复制为 cURL (bash),并且在 Postman 中我可以导入数据以创建新请求。如果我发送请求,我会返回 status 200 OK
并且响应包含 6 个 cookie。但是,响应正文包含 Postman 无法呈现的 htlm 页面和消息 You need to enable JavaScript to run this app.
我现在不知道如何使用响应来验证对某些数据的请求。我需要的令牌是否包含在其中一个 cookie 中?如何提取令牌并在请求某些数据时使用它?非常欢迎任何意见或建议。
答案 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'>