3

我正在使用 Devise 为我的 Rails 应用程序使用数据库身份验证(用于用户名和密码)和令牌身份验证来验证我用 Grape 构建的 API 的用户。Devise 正在按预期生成身份验证令牌。但是,似乎身份验证在第一次请求之后总是失败,并且在随后的时间里起作用。我authenticate!在 Grape 中调用 API 之前调用,其定义如下:

def authenticate!
  error!({"error" => "Unauth 401"}, 401) unless env['warden'].authenticate
end

这是非常奇怪的行为。如果我首先尝试使用浏览器登录,然后通过对 API 的 curl 调用,它可以工作。似乎第一个请求在服务器重新启动后总是会失败。

这是预期的行为吗?如果是这样,为什么会这样,我该如何避免?身份验证密钥登录是否总是需要先通过浏览器进行常规登录?

PS:我确实读过Devise authentication failed on first attempt, succeeds after,但它似乎没有回答这个问题。

4

0 回答 0