采纳答案成功!
向帮助你的同学说点啥吧!感谢那些助人为乐的人
//说明问题及问题答案是这个用户的,并且是正确的
String forgetToken = UUID.randomUUID().toString(); TokenCache.setKey(TokenCache.TOKEN_PREFIX+username,forgetToken);
return ServerResponse.createBySuccess(forgetToken);
楼上的回答语句不太通顺哈。。
首先,这里的token 并不是对于密保问题的答案做了缓存,要想理清楚这个。
把这个东西想的实际化一些:
你在密保部门,交出了自己的信息(用户名,密保问题和答案),当你的信息在系统中存在并且能匹配的时候,密保部门确定你是本人操作,会自己造一个令牌,然后他给了你一半,告诉你,“这个令牌,你拿着,到了修改密码部门的时候,给他们看,他们就会给你修改密码了”。然后你屁颠屁颠的跑到修改密码部门,在你去修改密码部门的时候,密保部门就会把另外一半牌子用他们自己的方式(放到系统缓存中),丢给了修改密码部门。当你到了修改密码部门,你说你要修改密码,然后他们叫你把另外一半的令牌交出来,当修改密码部门能从系统缓存中拿到与你匹配的另外一半令牌,凑成了一个完整的令牌,他们就同意了你修改密码的申请了,你就可以修改密码了,懂没?
至于为什么要这个令牌?比如,你去办理的时候,不给你这个令牌,然后你走的是一个不太密封的通道,然后孙悟空变成蚊子飞进来,他知道了你的用户名,这个时候,你看到美女停留了几分钟,他比你先到修改密码的部门,他就可以直接修改你的密码,盗窃你的资金账户了!
为什么要设置缓存时间呢?因为修改密码的部门事情多,如果该你来修改密码,你又去看美女,几天不来,那他就只能拿着你的令牌的另一半,干巴巴的等你,效率就很低了。
简单来说,这个token,就等于你去银行办理业务的时候给你拍得号,只由你拥有这个号的时候,银行才给你办理取钱(等同于系统给你办理修改密码的业务)
我开始也很迷惑这个问题,看完你的回答,舒坦~
这个不是答案的缓存。。是用户忘记密码时验证通过后的一个id缓存,不然你想改密码但是一直不改的话,你再想改肯定是不可以的,肯定有一个时间限制的
项目里为什么要12小时这么长,有点难理解
登录后可查看更多问答,登录/注册
前后端分离,数据库接口设计,架构设计,功能开发,上线运维
10.4k 10
1.9k 22
1.5k 21
2.3k 21
2.1k 18