会话,每个用户登录一次:注销旧会话或阻止登录新会话

时间:2013-12-02 13:22:22

标签: php session web session-cookies session-timeout

我想阻止在多个浏览器会话中登录同一帐户。 如何已经得到了解答。例如: How to restrict user to be logged only one time per session?PHP /SESSION: Login one per user?

这两种方法可防止用户再次登录。但是,Gmail(例如)只会注销旧会话。有了这种技术,对我而言,如果用AJAX调用或下一页刷新“实时”完成它并不重要。

我想知道哪一个更受欢迎,两者的优缺点是什么?

再次,选择:

  1. 防止在新的浏览器会话中再次登录
  2. 注销旧会话(使用AJAX或下一个请求)

2 个答案:

答案 0 :(得分:1)

最终阻止某人登录可能会让用户感到非常头疼,具体取决于您的会话超时时间。考虑镭射上的用户,电池耗尽,进入他的桌面,他无法登录x时间。浏览器崩溃可以说同样的事情。

如果您选择阻止登录,则需要有人随叫随到才能强制用户退出,以免中断他们的工作。

这实际上取决于您构建的应用程序是什么。有一些网络基础软件可以限制登录次数。例如,起重机规格软件限制登录,因为人们在一个项目上工作数小时。公司只购买x个座位,但有> x用户数量。因此,如果他们没有阻止登录,由于其他人“偷走座位”,可能会损失数小时的工作量

由您来决定哪种方案最适合您的情况。

答案 1 :(得分:-1)

对于这种要求,你需要在用户登录时创建一个数据库表,用户名和用户的ip地址进行更新,当用户注销时该行将被删除。现在你需要做的就是当用户登录时你必须在用户名和用户ip地址的表中插入一行。当用户尝试从不同的浏览器登录同一个帐户时,首先检查该行是否存在,如果没有,则让他们登录或者如果存在,告诉他们从ip地址开始,该用户名已经登录。