gpt4 book ai didi

ruby-on-rails - Rails CSRF token 真实性和设计

转载 作者:行者123 更新时间:2023-12-04 06:36:32 25 4
gpt4 key购买 nike

我在使用 rails 真实性 token 和设计登录/注销时遇到问题。

我正在使用主干 js 来构建一个单页应用程序,所以我使用 ajax 来登录/注销用户。这是我正在观察的内容,我不明白为什么会发生这种情况。

我的布局中有 csrf_meta_tags。页面加载,我点击登录按钮填写表单并提交,我成功登录。我可以做登录用户应该可以做的事情。

现在,我单击一个注销按钮,该按钮通过 ajax 发送 DELETE 请求,并成功注销。

上面的所有过程都在一个页面上,没有页面重新加载发生,所有的 ajax。

现在,当我再次单击登录并填写表单时,它会发送 ajax 请求,让我登录但在服务器控制台上显示一条警告消息。

WARNING: Can't verify CSRF token authenticity

现在为什么它(设计)让我登录,首先如果它(rails)无法验证 CSRF token 的真实性。

现在,当我尝试做一些登录用户应该能够做的事情时失败了,发布表单失败,并显示来自 devise 的错误消息
401 Unauthorized {"error":"You need to sign in or sign up before continuing."}

和服务器控制台上的警告
WARNING: Can't verify CSRF token authenticity

此时我已注销,如果我自己刷新页面,我可以看到我不再登录。

到底是怎么回事 ?

第一次注销后,我的第一个真实性 token 是否会过期?

我在用
rails (3.2.3)
devise (2.1.0)

提前致谢 :)

最佳答案

您必须发送 authenticity_token变量与您所有的 ajax 请求。您可以从页面的元标记中填充它。

关于ruby-on-rails - Rails CSRF token 真实性和设计,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11737516/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com