我的某个网络应用程序当前缺少的一项功能是,一个用户一次只能登录一台计算机。也就是说,如果用户登录其他地方,他的上一个会话将被注销。
这是由于我当前的用户表包含列:
user: id, username, hash, salt... cursession
当每个用户登录时,会话ID被放入“cursession”字段,并且在每次页面加载时,将对数据库进行检查。因此,一次只能激活一个“会话”。
答案 0 :(得分:1)
我建议您将当前登录的userid放在用户的会话中(作为会话变量),并从表中删除cursession
字段。您不需要重新发明会话处理,因为PHP已经内置了它。
这样,用户可以一次登录多台计算机。会话变量也是安全的,因为它们不会被浏览器操纵。浏览器中唯一保留的是会话ID,用于标识当前会话,所有其他数据都存储在服务器端。如果用户更改其浏览器cookie,唯一会发生的事情是他将被注销(开始一个空的会话),因此他不能强迫自己以其他人的身份登录。