请稍等 ...
×

采纳答案成功!

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

登录处理token错误

在UserService的loginForDts方法处理token中,用户重新登录应该删除老的token,但是不能把刚生成的refreshToken当作条件,不然怎么都删不了老的那一条token记录,导致单个user拥有多个token 应该根据userId删除token

		final String accessToken = TokenUtil.generateToken(userId);
        final String refreshToken = TokenUtil.generateRefreshToken(userId);
		//保存refresh token到数据库
        this.userDao.deleteRefreshToken(refreshToken, userId);
        this.userDao.addRefreshToken(refreshToken, userId, new Date());

另外还有一个提问:用户退出这一功能,我看老师的操作仅仅是把refreshToken从db中删除,那accessToken只要没过期 token不是依然有效吗?只是无法通过refreshToken请求到新的accessToken而已。同时退出的话也只要userId就足够了吧?根据id删除token即可

正在回答 回答被采纳积分+3

1回答

HELLOSTAR 2022-02-18 17:56:19

这个问题应该是当时录制课程的时候忘了同步判断双token的逻辑了,回头我把这里补充一下。正常流程是如果用户退出登陆了,那么下次他再持有accesstoken和refreshtoken的时候会根据这两个参数判断数据库是否有对应的数据,如果没有的话就无法请求到相关资源,为你点赞!

0 回复 有任何疑惑可以回复我~
  • 也就是说即使accessToken正确也要判定refreshToken是存在的这样么
    回复 有任何疑惑可以回复我~ 2022-02-18 18:01:49
问题已解决,确定采纳
还有疑问,暂不采纳
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号