【发布时间】:2021-07-23 04:39:10
【问题描述】:
我目前在我的项目中遇到了一个错误,这是一个带有 react/redux 前端的 rails api 后端。
使用 Rails 提供的 httponly cookie 和 csrf 令牌进行身份验证,并通过我的 api 包装器放置在我的请求的标头中。
我的应用程序有许多非获取请求,我没有遇到任何 CSRF 问题,但我在注销操作时遇到了奇怪的行为。
我的注销请求是一个删除请求,如果我登录,则立即注销该请求由于无效的 csrf 令牌而失败,我已确保我在登录后发出一个。
在我尝试调试此问题时,我仔细研究了 devtools 中的请求,并让服务器在创建时将每个 csrf 令牌记录到控制台,并且我让我的客户端在每个请求中记录令牌。我可以确认最后发出的 csrf 令牌与用于注销请求的令牌匹配,但它仍然无效。
让事情变得更奇怪:如果我刷新页面,注销请求会成功,尽管没有向后端发出新请求,并且使用与前一个请求中失败的相同的 csrf 令牌。
我感到不知所措,我不知道该怎么办我觉得我已经尝试了所有方法
【问题讨论】:
-
你能看到这个吗? github.com/rails/rails/issues/11476
标签: ruby-on-rails authentication fetch backend csrf