一、功能需求背景
在前后端分离架构中,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);// 生成动态失效时间的TokenString 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
}