一、功能需求背景
在前后端分離架構中,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
}