想到一个问题,关于登录时把token存入cache,旧的token要怎么处理
来源:9-7 实现Token身份权限体系五
你的名字很好听
2017-06-26
每次登陆都会生成一个新的token,token是随机的,那么把token作为key存入cache,比如用户第一次登录会生成一个缓存,第二次登录会生成一个新的缓存,2个cache的key不一样,那么第二个缓存就不能覆盖第一个,这样的话第二个有效,第一个失效了,那么第一个该怎么处理,总不能文件夹里留很多失效无用的缓存吧。因为token每次都是随机的,下一次的操作也无法做删除或覆盖操作
我也验证了:这个问题确实有:


token就是解决一个安全性的问题,课程token有效期是7200秒,实际中一般不会让用户频繁登录,基本上是一周或者一个月,如果一个用户同时存在几个token,获取新token时无法让旧token失效,那么只要任何一个token被人截取,程序都不会安全,
2回答
-
小程序中有控制,不会频繁登录只有在令牌失效的情况下才会请求登录。第二,用户令牌丢失后有效期只有7200秒。而且,任何的程序都无法解决令牌丢失的问题,只能通过减小有效期来减小风险。你设置成一个月,这才是真正的危险。我们程序里设置的7200秒,但是用户根本感觉不到登录的过程,不知道“让用户频繁登录”如何说起。从来没有哪个应用设置成1个月有效期,都是7200秒左右,可以通过刷新令牌,refresh token来解决,但绝对不会简单的设置成一个月。关于文件下面无效缓存的问题,这个就算是第一个有效期失效,那么文件缓存一样会存在,只不过是失效了。你可以更换成redis来解决。
022017-06-26 -
7七月
2017-06-26
想让第一个令牌失效,调用TP5的删除缓存即可。但依然无法解决令牌丢失的问题,新的令牌就不会被截取吗?
022017-06-26
相似问题