在我的应用程序中,我有一个登录页面,我需要阻止来自同一用户的多次登录(相同的用户名和密码)。我使用了不同的方法,例如具有布尔值并将其从true更新为false。但它的缺点是,无论何时用户关闭她的浏览器(没有记录),标志都不会更新。
有没有办法通过使用session_id或其他方式实现这一目标?
答案 0 :(得分:0)
我将使用Devise
并启用trackable
,这会将last_sign_in_at
,last_sign_in_ip
,current_sign_in_at
,current_sign_in_ip
保存到数据库中。然后,只需继承Devise::SessionsController
并覆盖操作create
,以检查当前IP是否与last_sign_in_ip
相同,而last_sign_in_at
是否在半小时之前。