不是理解为什么,要做这个答案缓存??

来源:6-4 获取用户登录信息,忘记密码,提示问题与答案,重置密码功能开发

慕村9289526

2018-06-21

//说明问题及问题答案是这个用户的,并且是正确的            

 String forgetToken = UUID.randomUUID().toString();             TokenCache.setKey(TokenCache.TOKEN_PREFIX+username,forgetToken);          

 return ServerResponse.createBySuccess(forgetToken);

写回答

2回答

Queen丶Star

2018-08-01

楼上的回答语句不太通顺哈。。

首先,这里的token 并不是对于密保问题的答案做了缓存,要想理清楚这个。

把这个东西想的实际化一些:

你在密保部门,交出了自己的信息(用户名,密保问题和答案),当你的信息在系统中存在并且能匹配的时候,密保部门确定你是本人操作,会自己造一个令牌,然后他给了你一半,告诉你,“这个令牌,你拿着,到了修改密码部门的时候,给他们看,他们就会给你修改密码了”。然后你屁颠屁颠的跑到修改密码部门,在你去修改密码部门的时候,密保部门就会把另外一半牌子用他们自己的方式(放到系统缓存中),丢给了修改密码部门。当你到了修改密码部门,你说你要修改密码,然后他们叫你把另外一半的令牌交出来,当修改密码部门能从系统缓存中拿到与你匹配的另外一半令牌,凑成了一个完整的令牌,他们就同意了你修改密码的申请了,你就可以修改密码了,懂没?

至于为什么要这个令牌?比如,你去办理的时候,不给你这个令牌,然后你走的是一个不太密封的通道,然后孙悟空变成蚊子飞进来,他知道了你的用户名,这个时候,你看到美女停留了几分钟,他比你先到修改密码的部门,他就可以直接修改你的密码,盗窃你的资金账户了!

为什么要设置缓存时间呢?因为修改密码的部门事情多,如果该你来修改密码,你又去看美女,几天不来,那他就只能拿着你的令牌的另一半,干巴巴的等你,效率就很低了。


简单来说,这个token,就等于你去银行办理业务的时候给你拍得号,只由你拥有这个号的时候,银行才给你办理取钱(等同于系统给你办理修改密码的业务)

12
1
你一言
我开始也很迷惑这个问题,看完你的回答,舒坦~
2018-08-19
共1条回复

polo哦

2018-06-23

这个不是答案的缓存。。是用户忘记密码时验证通过后的一个id缓存,不然你想改密码但是一直不改的话,你再想改肯定是不可以的,肯定有一个时间限制的

0
1
雨中过客V
项目里为什么要12小时这么长,有点难理解
2018-07-19
共1条回复

从0开始 独立完成企业级Java电商网站服务端开发

前后端分离,数据库接口设计,架构设计,功能开发,上线运维

9476 学习 · 8804 问题

查看课程