当会话结束时,Ruby on rails不会清除浏览器缓存

时间:2015-05-16 08:35:06

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

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

我遇到有关浏览器缓存或angularJS缓存的问题。会话结束时,缓存仍会存储旧值。

示例:

  1. 登录用户A
  2. 退出用户A
  3. 登录用户B. 网站显示用户A.
  4. 我希望用户B登录网站后显示用户B

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

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

1 个答案:

答案 0 :(得分: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