【发布时间】:2015-04-18 21:46:58
【问题描述】:
我在 Rails 4.2 应用程序中使用 Devise 进行身份验证。大多数用户在登录和完成工作时都没有任何问题,但特别是有一个用户似乎始终持有错误的 CSRF 令牌并且无法登录。
当然,以下是记录的内容:
W, [2015-02-17T20:58:19.261194 #1936] WARN -- : Can't verify CSRF token authenticity
I, [2015-02-17T20:58:19.263556 #1936] INFO -- : Completed 422 Unprocessable Entity in 5ms
F, [2015-02-17T20:58:19.276795 #1936] FATAL -- :
ActionController::InvalidAuthenticityToken (ActionController::InvalidAuthenticityToken):
<stack trace>
仔细阅读日志,我发现用户的 CSRF 令牌如您所愿地发生了变化,但它始终(100% 的时间)被服务器拒绝。
最初,我认为这是该用户浏览器的问题。我在尝试登录时开始记录用户代理,并要求该用户尝试使用多个浏览器;她有,而且所有人都能够重现同样的问题。 我重置了她的密码,并能够使用新凭据登录该帐户。她仍然无法登录。
她已多次转储缓存并清除 cookie。同样,反恶意软件的运行也不会返回任何结果(这可能是最可疑的)。
我错过了什么?我需要在服务器端做些什么来解决这个问题,还是她的电脑本身有问题?
【问题讨论】:
标签: ruby-on-rails devise csrf