您的位置:首页 > 运维架构 > 网站架构

PHP之深度剖析:网站唯一登录,踢人效果

2017-01-24 14:01 190 查看
数据库加个字段,如果用户已登入,那么会在用户表中的字段记录一下!用户登入时候判断这个字段是否存在!如果存在不允许登入,如果不存在,就允许写入 cookie 并且添加数据库。

一个用户登录的时候创建一个票据,放在memcached里面(存一个键值对,key值(账号)和内容),同时把这个票据作为cookie下发下去,这个用户在访问每个页面的时候都会提取cookie里面的票据和memached里面的票据比较。这时如果其他人用这个账号在异地登录的时候,这个账号就会在memached里面更新这个账号所对应的票据,这时先登录的那个人用自己cookie里面的票据和memcached里面的票据比较的时候就不一致了,这样就把先登录的那个人T出去。

1. Session :可以使用针对某一用户的唯一标识生成Session内容,但是不要用这个数据去当做登录凭据,因为固定的就会被盗用。

2.数据库存储Status: 退出可以清空,直接关闭浏览器可以使用onbeforeunload或者onunload事件,让页面在临死前跟数据库道个别。

3.Cookie不可用:因为这个不能防止用户在不同机器上多开。

4.登录后给客户端发送一个自定的序列码,用户与该码唯一对应,只存储一个这样的码,分两个状态:1'用户没登陆,数据库中也找不到对应的码;2'用户登录,将码生成,对应数据库,持有这个码的该用户才能登陆,如果这个码存在则不重新生成。 客户端或浏览器每隔一段时间像Server发送自己的身份唯一标识和这个码,如果一段时间没发,则数据库清空该码(这相当于自造Session也可用)
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息