【问题标题】:Rails 403 response on session expired when using protect_from_forgery使用protect_from_forgery时,Rails 403 会话响应过期
【发布时间】:2018-01-31 09:31:19
【问题描述】:

用户会话过期后,当向具有protect_from_forgery 的任何控制器发出POSTPUT 请求时,服务器会响应403,而不是注销用户的预期401。

当控制器返回 401 代码时,客户端会将用户重定向回登录屏幕。

我不想在每个 403 上重定向,除非他们的会话过期,否则我不会让用户被踢出。

我试过用谷歌搜索并使用in the doc 描述的不同标志,但没有任何运气。会话过期时如何让protect_from_forgery返回401?

【问题讨论】:

    标签: ruby-on-rails protect-from-forgery


    【解决方案1】:

    我找不到合适的解决方案,所以我使用了以下技巧:

    在客户端,每当服务器返回 403 错误时,我会立即向 API 端点发出 GET 请求,如果会话存在(用户已登录)则返回 200,否则返回 401。

    我已经有了将用户重定向到任何 401 错误的登录页面的客户端逻辑。

    如果有人有更好的解决方案,不需要拨打秒电话,我会很高兴听到。

    【讨论】:

      猜你喜欢
      • 2016-01-07
      • 2014-08-14
      • 2023-02-07
      • 2012-12-02
      • 1970-01-01
      • 2016-07-28
      • 1970-01-01
      • 1970-01-01
      • 2023-03-27
      相关资源
      最近更新 更多