登录处理token错误
来源:3-16 第三章作业1

认真努力小封同学
2022-02-15
在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即可
写回答
1回答
-
HELLOSTAR
2022-02-18
这个问题应该是当时录制课程的时候忘了同步判断双token的逻辑了,回头我把这里补充一下。正常流程是如果用户退出登陆了,那么下次他再持有accesstoken和refreshtoken的时候会根据这两个参数判断数据库是否有对应的数据,如果没有的话就无法请求到相关资源,为你点赞!
012022-02-18
相似问题
JWT实现单点登入的想法
回答 1
账号注册不上
回答 1