【问题标题】:How Do I Authenticate an API Request Using a Token With Postman如何通过 Postman 使用令牌验证 API 请求
【发布时间】:2021-08-03 15:59:26
【问题描述】:

我正在尝试在从以前的开发人员那里继承的项目上使用 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 中?如何提取令牌并在对某些数据的请求中使用它?非常欢迎任何意见或建议。

【问题讨论】:

    标签: jwt postman identityserver4


    【解决方案1】:

    通常,在浏览器中启用 JavaScript 后,<form> 将使用method 自动发布到其在action 中定义的目的地。 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'>
    

    【讨论】:

      猜你喜欢
      • 2016-09-26
      • 2018-01-03
      • 2020-02-17
      • 1970-01-01
      • 2021-02-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-09-09
      相关资源
      最近更新 更多