大家好,我是爱你三千遍斯塔克,我们在之前开发登录接口的时候,遗忘了一个bug,那就是用户携带的UUID,在用户登录接口修改之后,利用旧的UUID,仍能够操作,调用相关接口,这可不得了了,万一有一天,有人知道小编的存储的token,利用它误操作小编的图库,把自己珍藏的女神的图片给误删除了,那么小编连哭o(╥﹏╥)o的心情都没有了。
那么如何优化呢?这里涉及到redis方面的知识,小编在这里整理了一份,登录优化-redis_思路分析的资料可供大家参考,希望对大家有帮助:
最后小编在这里放一张自己女神的照片,压箱底的秘密告诉你了,还不点赞关注。。。。。。。。。
1、综上,我们已经完成大事件所有后台项目的开发,所以项目的开发
2、为了让我们程序使用的更好,我们来对登录接口进行一个优化
3、首先,我们回顾一下,之前的登录逻辑
4、当浏览器生成token的时候,会携带着令牌
5、这里出现了什么问题,当用户修改密码的时候,
6、用户修改成功了,用户用新的密码进行登录,然后系统会下发新的令牌
7、作为我们之前的程序,并没有作废这种令牌的办法,这时候,就会出问题了
8、举个例子,假如你的密码不小心让别人知道了,你想通过修改密码的方式,立即作废之前的密码使用权限,旧的令牌没有带来的结果就是,这个知道你密码的人,仍然可以拿你的密码进行修正。我们来验证一下。
9、把用户的请求头给他复制一下
10、
11、把请求头给他替换一下
12、我们修改用户密码的好处
13、我们在使用旧的密码进行登录现在不行了,因此我要用新的密码进行登录
14、我们请求头里面,依然用的是旧的令牌,如果我用旧的令牌,
15、如果旧的令牌,这里仍然能够访问到之前的令牌
16、如果令牌主动失效,
17、当用户登录成功之后,我们依然需要生成令牌
18、这个令牌,在响应的过程中,他也要往redis中存储一份
19、在浏览器携带着令牌经过拦截器时,还需要在redis中获取着一模一样的令牌,如果能够获取到,说明浏览器中的令牌并没有失效,如果能从redis中获取到令牌,就能够正常的提供服务
20、当用户修改密码之后,我们只要把这个redis给他修改掉
21、