使用FOSUserBundle一次避免两个或多个同一用户登录

时间:2015-09-03 18:42:02

标签: symfony fosuserbundle symfony-2.4

我试图在Symfony 2.4中使用FOSUserBundle一次避免两个或多个同一用户登录,我不知道如何访问与经过身份验证的用户相关的信息以及如何如果最近登录的用户先前已经过身份验证,请注销。 我错过了什么?

1 个答案:

答案 0 :(得分:0)

<强> [编辑]

再次阅读你的问题我不确定你想要什么。我在下面写的答案保持最新登录并记录旧登录

<强> [/编辑]

已登录的用户

a)在网络服务器上启动会话

b)通过输入正确的用户名和密码组合来识别自己。

知道我们也知道登录的用户在会话中存储了一个变量(可能是user_id)。

现在,如果您想要在其他会话中登录其他会话(使用相同的user_id),则确实存在问题,因为不会与其他会话共享信息。

解决方案可能是在数据库'users'表中添加一个可以保存随机哈希的列。然后,如果用户登录,则需要在数据库中保存新哈希,并且还需要将哈希保存到会话中。

然后,您必须将会话哈希值与每个新请求的数据库哈希值进行比较。如果两者不同且用户仍然登录,则必须将用户注销。

我认为 你可以让它适用于以下事件监听器(但我从未尝试过这样做):