检测Rails3 + Devise应用程序中的返回用户

时间:2011-07-27 09:01:05

标签: ruby-on-rails cookies devise

我正在寻找解决方案,以达到理想的行为。 运行由Devise处理身份验证的Rails3应用程序。我想检测任何用户在登录时返回该网站(使用remember_me Cookie)。

我的目标是将他重定向到特定页面(因为我已在after_sign_in_path_for上执行此操作。)

我的问题不在于检测用户是否signed_in?,而是确保他在两分钟之前没有在网站上导航(我更愿意避免基于时间的策略......)< / p>

有什么猜测吗?

1 个答案:

答案 0 :(得分:0)

我自己的答案,我的问题......

我发布的问题太快了。

解决方案非常简单,Rails在每次请求后创建一个会话cookie,我们只需检查它是否存在:

def user_returning?
  user_signed_in? && session[:session_id].blank?
end

我正在混合Devise会话,它可以在浏览器关闭之间存在,会话cookie会在每次浏览器关闭后被销毁。

user_returning?让我知道用户是否已回来访问该网站,而他已登录...