『博客开发日记-后台』之刷新token接口的实现

本文最后更新于 2026年4月9日 晚上

刷新token接口的实现


刷新token接口的需求

当当前用户token快过期时刷新token

从Redis验证用户是否仍然登录

刷新token的有效期为七天

代码实现

这里主要展示服务类的代码

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
//刷新Token
@Override
public ResponseResult refreshToken(String refreshToken)
{
// 校验refreshToken是否为空
if (!StringUtils.hasText(refreshToken)) {
throw new SystemException(AppHttpCodeEnum.NEED_LOGIN);
}

try {
// 解析refreshToken获取userId
String userId = JwtUtil.parseJWT(refreshToken).getSubject();

// 从Redis中获取用户信息,验证用户是否仍然登录
LoginUser loginUser = redisCache.getCacheObject("adminLogin:" + userId);
if (Objects.isNull(loginUser)) {
throw new SystemException(AppHttpCodeEnum.NEED_LOGIN);
}

// 生成新的访问令牌(1小时)
String newToken = JwtUtil.createJWT(userId);

// 生成新的刷新令牌(7天)
String newRefreshToken = JwtUtil.createJWT(userId, JwtUtil.JWT_REFRESH_TTL);

// 封装成Vo
AdminAuthVo vo = new AdminAuthVo(newToken, newRefreshToken, JwtUtil.JWT_TTL / 1000);
return ResponseResult.okResult(vo);
} catch (Exception e) {
throw new SystemException(AppHttpCodeEnum.NEED_LOGIN);
}
}

在JwtUtil中添加常量




PS:该系列只做为作者学习开发项目做的笔记用

不一定符合读者来学习,仅供参考


预告

后续会记录博客的开发过程

每次学习会做一份笔记来进行发表

“一花一世界,一叶一菩提”


版权所有 © 2026 云梦泽
欢迎访问我的个人网站:https://hgt12.github.io/


『博客开发日记-后台』之刷新token接口的实现
http://example.com/2026/04/09/『博客开发日记-后台』之刷新token接口的实现/
作者
云梦泽
发布于
2026年4月9日
更新于
2026年4月9日
许可协议