Php FOSUserBundle-唯一会话访问
使用Symfony 2.0和FOSUserBundle,我需要知道如何限制访问以使其唯一 这就是我的意思:Php FOSUserBundle-唯一会话访问,php,security,symfony,fosuserbundle,Php,Security,Symfony,Fosuserbundle,使用Symfony 2.0和FOSUserBundle,我需要知道如何限制访问以使其唯一 这就是我的意思: 用户X通过登录/密码访问我的系统创建会话 在该会话仍然有效(未关闭会话等)的情况下,同一用户X尝试从不同的计算机或位置进行访问 在这种情况下,我需要系统通过某种消息避免第二次访问:“该用户拥有来自另一台计算机的有效会话” 有可能吗?只有当您能够找到一种安全的方法来知道用户会话何时被破坏或他何时从另一台计算机注销时,才有可能做到这一点,而且是可信的。由于它可以在没有用户明确操作的情况下发生(
有可能吗?只有当您能够找到一种安全的方法来知道用户会话何时被破坏或他何时从另一台计算机注销时,才有可能做到这一点,而且是可信的。由于它可以在没有用户明确操作的情况下发生(例如,他关闭了浏览器,会话超时),因此我不会依赖它。当然,您总是可以尝试找到一些解决方法(即断言会话过期时间并跟踪用户注销),但它仍然不是100%安全的。考虑以下情况:新的访问将被拒绝,因为会话仍在另一个浏览器上打开,前面没有人
另一方面,您可以使用和中的一些提示以另一种方式(当新用户登录时,另一个用户注销时)执行此操作。只有当您能够找到一种安全的方式来知道用户会话何时被破坏或他已从另一台计算机注销时,才有可能做到这一点。由于它可以在没有用户明确操作的情况下发生(例如,他关闭了浏览器,会话超时),因此我不会依赖它。当然,您总是可以尝试找到一些解决方法(即断言会话过期时间并跟踪用户注销),但它仍然不是100%安全的。考虑以下情况:新的访问将被拒绝,因为会话仍在另一个浏览器上打开,前面没有人
另一方面,你也可以用另一种方式(当新用户登录时,另一个用户注销)和中的一些提示来完成。如果我错了,请纠正我,但我认为自从Chrome(我也认为是FF)以来,我终于没有办法完成我的任务了保存准确的cookie,并能够通过跳过所有LoginHandler方法恢复会话 让我解释一下 是的,我准备(实际上我已经)实施您的回答和评论中描述的解决方案:
User
和会话中我想哭:(如果我错了,请纠正我,但我认为最终没有办法做我想做的事情,因为Chrome(我也认为FF)保存了准确的cookie,并且能够通过跳过所有LoginHandler方法来恢复会话 让我解释一下 是的,我准备(实际上我已经)实施您的回答和评论中描述的解决方案:
User
和会话中我想哭:(非常感谢。我想我会得到第二个选项。你怎么看:使用上次登录的日期时间。FOSUserBundle会自动将数据保存到数据库中。当用户登录时,保存完整的日期时间(秒精确)在会话中。当发出任何请求时,检查两个位置(会话和用户表)的信息是否一致。否则,说再见并销毁会话。方法很好,不是吗?非常感谢。我想我会得到第二个选项。您对此有何看法:使用上次登录的日期时间。FOSUserBundle会自动将该数据保存在数据库中。当用户登录时,保存完整的日期时间(精确到秒)在会话中。当发出任何请求时,检查信息在两个位置(会话和用户表)是否一致。否则,说再见并销毁会话。很好的方法,不是吗?正如我所说