php – 来自更多地方的“记住我”

开发技术 作者: 2024-07-02 03:05:01
我正在尝试使用 PHP和MySQL创建一个登录系统.我正在使用cookie以保持用户长时间登录. cookie具有随机生成的字符串,该字符串也在数据库中.将它们相互比较并采取适当的行动.基本上,它是标准的身份验证系统. 我的问题是我不太确定如何从多个位置处理身份验证问题.由于每个用户只有一个随机字符串,如果他从另一个用户登录,他将从一个位置登出. 我能想出的唯一解决方案是一个表,其中存储了用户的多
我正在尝试使用 PHP和MysqL创建一个登录系统.我正在使用cookie以保持用户长时间登录. cookie具有随机生成的字符串,该字符串也在数据库中.将它们相互比较并采取适当的行动.基本上,它是标准的身份验证系统.

我的问题是我不太确定如何从多个位置处理身份验证问题.由于每个用户只有一个随机字符串,如果他从另一个用户登录,他将从一个位置登出.

我能想出的唯一解决方案是一个表,其中存储了用户的多个登录,每个登录都有一个单独的随机字符串.

这是正确的方法吗?未使用的会话会发生什么?

解决方法

如果要支持多个位置,则无法将cookie值保留在用户表中.相反,您应该创建一个新的自动登录表,分别使用cookie值和用户ID作为主键和外键.我相信这也是你的想法.

然后,为了便于管理,您可以记录上次使用任何值的最后一次登录时间.超过XX天的任何内容都将被删除,用户需要再次登录.您可以为此设置一个cron作业,也可以在每次有人使用cookie登录时运行它.

cron删除作业可以处理更多记录(因为没有人等待它完成),但是为了优化,您需要在日期字段上使用索引(以防止表扫描).

每次登录时的内务管理都有一个优点,即您只需查询该用户的cookie值,并且由于外键约束,查找速度很快.但是您只能清理当前用户的cookie,因此您可能会收集从未再次使用过的cookie.

原创声明
本站部分文章基于互联网的整理,我们会把真正“有用/优质”的文章整理提供给各位开发者。本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
本文链接:http://www.jiecseo.com/news/show_37061.html
php 来自 更多 地方 记住