/**
- PHP无痛刷新jwt
登录用户:
-
1、根据用户id生成$key,并存放于用户信息表当中的serial字段
-
2、payload当中增加刷新时间refresh,长度是过期exp时间的2倍(可修改)
-
3、生成jwt令牌
数据请求:
-
1、根据客户端带上来的jwt令牌解开payload;
-
2、根据用户id(存放于payload中)获取serial,作为$key;
-
3、校验jwt文件,如果成功对payload当中的开始、到期时间、刷新时间进行验证,都无问题则通过
-
4、如果到期时间已过,而刷新时间未过,则重新设置payload当中的到期和刷新时间,重新生成token并发布,
-
因为重新生成token的过程当中,$key会根据用户id重新生成序列,所以原令牌就自动失效了;同样,如果
-
在其他地方登录,也会刷新用户表的serial字段,将当前用户踢下线,实现单点登录。
多点登录:
-
如果要实现多点登录,只需要客户端提供本机识别(登录IP、Session-cookie启用、登录时随机生成一个长期
-
不变的序列存放于本机的localstorag当中)等方式,将用户id、识别码、serial字段另建立一个新数据表,并
-
使用用户id与识别码联合查询serial的方式,则能实现了;而且可以做到通过删除对应联合码记录的形式实现多
-
客户端管理。
*/
写的有点乱,但思路老鸟们应该能看懂吧,新手发文,纯爱好者!请多多指教!