在我的应用程序中,我有一个登录页面,我需要防止同一用户(相同的用户名和密码)多次登录。我使用了不同的方法,例如使用 bool 值并将其从 true 更新为 false。但它有一个缺点,即每当用户关闭她的浏览器(没有登录)时,标志就不会更新。
是否有任何方法可以通过使用 session_id 或类似的东西来实现?
最佳答案
我将使用 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
不早于半小时前。
关于ruby - 避免使用相同的用户名和密码多次登录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30302424/