问题:设置token有效时间为3天,那么无论如何3天后需要重新登入,而且生成的token是保存在客户端的,只要token没有过期,已经签发的token对jwt来说还是有效的
解决方案:token默认使用的是对称加密base64,所以默认情况下若要加强安全性,就不要把没有加密的密码信息放入token中,其次token的载荷不是针对数据交换的,数据不能太多,否则token会很长,降低性能。
JWT+Redis
token 有效时间3天,APP 3天内有动态,那么就要延长token时间,不需要用户重新登入,对用户更友好。
现有解决方案:请求时更换新的token,我们也不需要每次请求都更新token,可以在某些特定请求下更新token比如index.html访问首页核心内容时创建新的token
那么已经签发的token如何使它无法访问
可以在生成token时,把用户名和最新的token存到redis中(高效)+ 访问时判断用户名和Token是否对应,如果相同就是最新的token,否则就是旧的token不允许访问