我遇到了rails authenticity token和Devise login / logout的问题.
我使用骨干js构建单页面应用程序,所以我使用ajax登录/注销用户.这是我观察到的,我不明白为什么会发生这种情况.
我的布局中有csrf_meta_tags.页面加载,我点击登录按钮填写表格并提交,我已成功登录.我可以做一些登录用户应该能做的事情.
现在我单击一个注销按钮,通过ajax发送DELETE请求,我已成功注销.
上面的所有过程都在一个页面上没有页面重新加载发生它的所有ajax.
现在,当我再次单击登录并填写表单时,它会发送ajax请求,登录但在服务器控制台上显示警告消息.
WARNING: Can't verify CSRF token authenticity
现在为什么它(设计)登录我,首先如果它(rails)无法验证CSRF令牌的真实性.
现在,当我尝试执行登录用户应该能够执行的操作失败时,发布表单失败并显示错误消息
401 Unauthorized {"error":"You need to sign in or sign up before continuing."}
和服务器控制台上的警告
WARNING: Can't verify CSRF token authenticity
此时我已退出,如果我自己刷新页面,我可以看到我不再登录了.
到底是怎么回事 ?
我第一次退出后,我的第一个真实性令牌是否会过期?
我在用
rails (3.2.3) devise (2.1.0)
提前致谢 :)
解决方法
您必须发送authenticity_token变量以及所有ajax请求.您可以从页面的元标记中填充它.
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。