上次,我问这个问题我被误解了。所以:
在我的Rails3应用程序中,我使用Devise进行身份验证。我有要求说,每个用户只能从一个浏览器登录。这意味着如果用户A登录(例如在FF上),然后从其他计算机,或从其他浏览器(例如Chrome)登录请求登录用户A,则应该登出第一个。
我发现,我可以覆盖SessionController,它是create方法。但是,我没有看到任何方法来检查用户是否具有给定的电子邮件(params [:email])当前是否已登录,此外我不知道应该调用哪种方法来销毁此用户会话。
答案 0 :(得分:1)
我只是为会话中的每个页面加载存储一个时间戳。将before_filter中的this与用户的last_seen字段进行比较。如果上次看到的用户是在会话时间戳之后销毁用户会话。
答案 1 :(得分:0)
我采取的方法是修改trackable或lastseen插件,然后使用warden回调。
https://github.com/hassox/warden/wiki/Callbacks
不是一个好的答案,但也许可以让你开始。