请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

关于token,我的理解

看了代码中的token的用法,我的理解是在进行答案校验的时候,即在checkAnswer方法中,如果答案正确,那么就针对这个用户,把一个token存入缓存中。当该用户想改密码时,将传入的token跟缓存中的token进行比较,如果一致,则认为是该用户在操作。

我有一个小疑问,为什么要给token一个过期时间呢?

正在回答

1回答

hi 同学,你的理解是对的,

token要过期时间的原因是,这次修改需要保证在一段时间内有效,过期就无效了。

因为token也可以被拦截~~再进一步的做法是使用token修改完之后,把token置成失效。

例如不加token,那么通过修改密码的接口 就可以随便改其他username的密码了。

那么加token,加了有效时间,起码在一段时间内,我保证自己的修改是有效且防止其他无效。

这在互联网上修改密码是一个很常用的做法,例如,忘记密码修改邮件里面给的链接,都会有一个提示,告诉你,这个修改密码的链接在10个小时之内有效,过期请重新获取该链接~

1 回复 有任何疑惑可以回复我~
  • 提问者 木星上的土星人 #1
    非常感谢!
    回复 有任何疑惑可以回复我~ 2018-04-12 12:57:08
  • geely老师,使用session来实现更改密码时候token的功能似乎也可行?比如:验证完问题和答案后,session.setAtrribute("CAN_CHANGE_PASSPWORD",true),下次调用修改密码接口,检测session的这个属性判断是否有权限。麻烦老师指点一下
    回复 有任何疑惑可以回复我~ 2018-06-20 21:33:41
  • 是为了使用设置有效期而使用基于guava chache 的token吗?
    回复 有任何疑惑可以回复我~ 2018-06-20 21:38:39
问题已解决,确定采纳
还有疑问,暂不采纳
意见反馈 帮助中心 APP下载
官方微信