铁轨上的红宝石-Devise退出



上次,我问了这个问题,我被误解了。因此:

在我的Rails3应用程序中,我使用Devise进行身份验证。我的要求是,每个用户只能从一个浏览器登录。这意味着,如果用户A登录(例如在FF上),然后从其他计算机或其他浏览器(例如Chrome)来请求登录用户A,则第一个用户应该注销。

我发现,我可以覆盖SessionController及其创建方法。然而,我看不到任何方法来检查具有给定电子邮件(params[:email])的用户当前是否已登录,此外,我不知道应该调用哪种方法来销毁此用户会话。

我只会为会话中的每个页面加载存储一个时间戳。在before_filter中将其与user的lastrongeen字段进行比较。如果最后一次看到用户是在会话时间戳之后,则销毁用户会话。

我会采取的方法是修改可跟踪或lastseed插件,然后使用管理员回调。

https://github.com/hassox/warden/wiki/Callbacks

不是一个很好的答案,但也许可以让你开始。

最新更新