【问题标题】:Ruby on rails does not clear browser cache when session ends会话结束时,Ruby on Rails 不会清除浏览器缓存
【发布时间】:2015-05-16 08:35:05
【问题描述】:

我正在使用 Devise gem 来处理我网站中的登录/注销。在客户端我使用 AngularJS 缓存是 DSCacheFactory。

我对浏览器缓存或 angularJS 缓存有疑问。会话结束时,缓存仍然存储旧值。

例子:

  1. 登录用户A
  2. 注销用户A
  3. 登录用户B 网站显示用户 A。

我希望用户B登录网站后显示用户B

Angular DSCacheFactory 只是在浏览器缓存过期时清除它们。

如何在用户 B 登录后清除 DSCacheFactory 用户 A(会话结束)。

【问题讨论】:

  • 恐怕没有足够的信息。调试并遵循代码。我预计如果 A 已完全设置,您将不会被要求提供 B 的登录详细信息。所以有些东西知道你已经退出了,然后它就会对它大发雷霆。通常你会在 SessionController 中看到 destroy 做这种事情。

标签: ruby-on-rails angularjs devise angular-cache


【解决方案1】:

我知道那个帖子很旧,但如果有人需要解决所描述的问题,以供将来参考。

您必须检查用户当前是否使用某个帐户登录,并且在尝试新登录时只会使之前的会话无效。

如果您使用该代码覆盖 Devise::SessionsController 和 Create 操作,您应该会注意到预期的结果。它与角度设计库一起正常工作

https://github.com/cloudspace/angular_devise

 def create
    if user_signed_in? && params[:user].present?
          sign_out(current_user)
    end
    super
  end

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-02-11
    • 1970-01-01
    • 1970-01-01
    • 2013-07-18
    • 1970-01-01
    • 2021-07-07
    相关资源
    最近更新 更多