2017-04-11 30 views
0

我使用Devise,并且我想检测用户是否从其他设备登录。 (我不想限制第二次会话,所以设计安全扩展将不起作用)。Rails检测用户是否从多个设备登录

所以问题是 - 如何检测用户是否在同一时间从多个设备登录。

+0

您需要修改会话控制器以将登录信息存储在单独的表中,并通过IP或MAC地址等方式识别它们,并存储用户标识。然后您可以通过查询表获取“登录”。 – max

+0

html请求没有Mac地址(所以你不能从user_agent得到它) –

+0

如果用户从咖啡馆,工作或家庭(或移动电话)登录,ip可以改变。所以这种方法会返回更多的错误,它会使用 –

回答

0

您可以使用fingerprintjs2检测设备。用户登录时,将指纹存储在会话中,并在用户位于新设备上时查询会话存储。

+0

我们将会话存储在服务器端。目的是为了检测来自同一个帐户的两个登录是否同时发送电子邮件,如果用户从同一个帐户登录两次或更多。 –

+0

什么是当前会话存储?一个数据库商店或缓存存储像redis? –

+0

此外,如果用户清除Cookie或关闭浏览器而不注销,会发生什么情况?他们是否仍然收到相同的电子邮件? –