我正在使用Devise使用数据库身份验证(用于用户名和密码)和我使用Grape构建的API的令牌身份验证来验证我的rails应用程序的用户。 Devise正在按预期生成身份验证令牌。但是,似乎在第一次请求后身份验证始终失败并且后续工作。我在Grape中调用API之前调用了authenticate!
,其定义如下:
def authenticate!
error!({"error" => "Unauth 401"}, 401) unless env['warden'].authenticate
end
这是非常奇怪的行为。如果我首先尝试使用浏览器登录,那么通过对API的curl调用,它可以正常工作。似乎第一个请求在服务器重启后总是会失败。
这是预期的行为吗?如果是这样,为什么会这样,我该如何避免呢?身份验证密钥登录是否始终需要通过浏览器定期登录?
P.S:我读过Devise authentication fails on first attempt, succeeds afterwards,但它似乎没有回答这个问题。