哈希空间
PHP 教程
PHP 表单
PHP 数据库
php 如何禁止同一账号多处登录?
这个问题本质是要区分 每次登录后的不同,并记录下来。
每次登录时,生成一个随机字符串 clientId =md5(userId.microtime().rand().‘hashspace.cn’); 并返回给 客户端保存(可以存放在cookie中),后续请求接口时 需要带上 clientId 这个字符串。
服务器端在数据库或缓存中存储如下信息:
字段 | 类型 | 说明 |
---|---|---|
userId | int | 用户id |
clientId | varchar(32) | 随机字符串,区分每次登录 |
当服务器收到请求时 判断 客户端提交的 clientId 和 服务器端存储的clientId 是否一致。
如果不一致说明,账户已经在别的地方登录过了,客户端的clientId 不是最新的,这时候让用户重新登录即可。
同理,通过判断 clientId 也可以去支持账户的多端登录情况。去支持 比如 文件传输(手机和电脑),消息多端通知(手机和电脑都可以收到通知)等等业务场景。
本文 最佳观看地址:https://www.hashspace.cn/php-login-multi.html 阅读 668