一、功能需求背景
在前后端分离架构中,JWT(JSON Web Token)作为无状态认证方案被广泛使用。若依(RuoYi)框架的TokenService默认采用固定失效时间策略,但在实际开发中常需要根据业务场景动态调整Token有效期。本接口通过可配置参数实现了灵活的Token失效时间控制。
二、代码实现解析
核心代码结构
/**
* 用于生成指定失效时间的Token
*
* @param expireMinutes Token失效时间(分钟),必填参数
* @return 返回包含Token的AjaxResult对象
*/
@GetMapping("/generateToken")
public AjaxResult generateToken(@RequestParam(name = "expire") Integer expireMinutes) {
// 原有参数有效性校验
if (expireMinutes <= 0) {
return AjaxResult.error("失效时间必须大于0分钟");
}
LoginUser testUser = new LoginUser();
testUser.setUserId(1L);
SysUser sysUser = new SysUser();
sysUser.setUserName("admin");
testUser.setUser(sysUser);
testUser.setDeptId(103L);
// 生成动态失效时间的Token
String jwtToken = tokenService.createFixedToken(testUser, expireMinutes);
// 构造带参数的返回消息
String message = String.format("操作成功,失效时间%d分钟", expireMinutes);
return AjaxResult.success(message, jwtToken);
}
三、接口使用示例
请求方式:
GET http://localhost:8080/generateToken?expire=5
成功响应:
{
"msg": "操作成功,失效时间5分钟",
"code": 200,
"data": "eyJhbGciO...(JWT内容)"
}
错误响应示例:
{
"msg": "失效时间必须大于0分钟",
"code": 500,
"data": null
}