2015-05-16 80 views
0

我正在使用Devise gem来处理我的网站中的登录/注销。在客户端我使用AngularJS缓存是DSCacheFactory。当会话结束时,Ruby on Rails不会清除浏览器缓存

我有一个关于浏览器缓存或angularJS缓存的问题。当会话结束时,缓存仍然保存旧值。

实施例:

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

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

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

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

+0

隔靴搔痒的信息恐怕正常工作。调试并遵循代码。如果A完全安装完毕,你会不会被要求提供B的登录信息。所以有些事情知道你已经退出了,之后它就变成了一个嘘声。通常你会在SessionController中看到销毁这种东西。 –

回答

1

我知道帖子已过时,但为了将来的参考,如果有人需要解决所描述的问题。

您必须检查用户当前是否使用某个帐户登录,如果尝试新登录,则只会使先前的会话无效。

如果您重写Devise :: SessionsController并使用该代码创建操作,您应该注意预期的结果。它具有角色器件库

https://github.com/cloudspace/angular_devise

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