REST API 测试 - 邮递员在每次请求后表现为不同的客户端

REST API Testing - Postman behaving as different client after each request

我目前正在使用 Postman 测试我的 REST API。我使用 Ruby-On-Rails 构建它,并使用 devise_token_auth 来管理用户会话。成功登录后,我的 API 正在呈现 clientaccess-tokentoken-type(BEARER) 和 Uid。每个要求用户登录并且必须在 header.

上发送的请求都需要这些元素

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

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

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

我终于解决了这个问题:

根据 devise_token_auth gem documentation,每次客户端查询 API 时,access-token 都会更改。因此,每当我想向 API.

发送请求时,我都必须更新 headers 上的 access-token

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

 config.change_headers_on_each_request = false

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

这样您就可以使用 Postman,而无需在 Rails 应用程序中设置 config.change_headers_on_each_request = false