【问题标题】:REST API Testing - Postman behaving as different client after each requestREST API 测试 - 邮递员在每次请求后表现为不同的客户端
【发布时间】:2019-11-29 06:58:11
【问题描述】:

我目前正在使用 Postman 测试我的 REST API。我使用Ruby-On-Rails 构建了它,并使用devise_token_auth 来管理用户会话。成功登录后,我的 API 正在呈现 clientaccess-tokentoken-type(BEARER) 和 Uid。每个需要用户登录并且必须在标头上发送的请求都需要这些元素。

假设我正在使用 POST 创建一篇文章。第一个 POST 成功并创建了文章,但是当我尝试创建另一篇文章时,我得到:

{
  "errors": [
    "Authorized users only."
  ]
}

我怀疑 Postman 在每次请求后都表现得像不同的客户端,或者我的 API 在每次请求后为用户创建了一个 access-token

【问题讨论】:

  • 如何在 Postman 中将令牌添加到您的请求中?
  • 我将其添加到标题中

标签: ruby-on-rails rest devise postman


【解决方案1】:

我终于设法解决了这个问题:

根据devise_token_auth gem documentation,每次客户端查询API时access-token都会改变。因此,每当我想向我的 API 发送请求时,我都必须更新标题上的 access-token

为了防止access-token在每次请求后被更改,将以下行添加到confing/initializers/devise_token_auth.rb

 config.change_headers_on_each_request = false

【讨论】:

    【解决方案2】:

    我对此linked question 添加了一个也适用于这个问题的答案。使用测试和预请求脚本,您可以让 Postman 在每次请求后自动保存和更新令牌。

    这使您无需在 Rails 应用程序中设置 config.change_headers_on_each_request = false 即可使用 Postman。

    【讨论】:

      猜你喜欢
      • 2019-03-03
      • 2018-09-15
      • 2021-03-03
      • 1970-01-01
      • 2021-09-27
      • 2020-04-06
      • 2020-05-22
      • 1970-01-01
      • 2019-06-10
      相关资源
      最近更新 更多