添加了重生成token
Change-Id: Ic014cdbba93729942ceface9354a487ff3f36ac9
diff --git a/src/main/java/com/example/g8backend/controller/AuthController.java b/src/main/java/com/example/g8backend/controller/AuthController.java
index 48376f2..bb6c0a9 100644
--- a/src/main/java/com/example/g8backend/controller/AuthController.java
+++ b/src/main/java/com/example/g8backend/controller/AuthController.java
@@ -10,9 +10,10 @@
import com.example.g8backend.util.mailUtil;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.redis.core.RedisTemplate;
+import org.springframework.security.core.context.SecurityContextHolder;
import org.springframework.security.crypto.password.PasswordEncoder;
import org.springframework.web.bind.annotation.*;
-
+import jakarta.servlet.http.HttpServletRequest;
import java.util.HashMap;
import java.util.Map;
import java.util.UUID;
@@ -111,4 +112,19 @@
Object value = redisTemplate.opsForValue().get("test");
return ApiResponse.success("test redis ok");
}
+
+ //刷新token
+ @PostMapping("/refresh-token")
+ public ApiResponse<String> refreshToken(HttpServletRequest request) {
+ Object principal = SecurityContextHolder.getContext().getAuthentication().getPrincipal();
+ if (!(principal instanceof Long userId)) {
+ return ApiResponse.error(401, "未认证,无法刷新token");
+ }
+ String oldToken = request.getHeader("Authorization");
+ if (oldToken != null && oldToken.startsWith("Bearer ")) {
+ oldToken = oldToken.substring(7);
+ }
+ String newToken = jwtUtil.generateToken(userId);
+ return ApiResponse.success("Token刷新成功", newToken);
+ }
}
diff --git a/src/main/java/com/example/g8backend/dto/ApiResponse.java b/src/main/java/com/example/g8backend/dto/ApiResponse.java
index 8ad28f7..9940361 100644
--- a/src/main/java/com/example/g8backend/dto/ApiResponse.java
+++ b/src/main/java/com/example/g8backend/dto/ApiResponse.java
@@ -1,12 +1,15 @@
package com.example.g8backend.dto;
+import lombok.Data;
+
+@Data
public class ApiResponse<T> {
private int code;
private String message;
private T data;
public ApiResponse() {}
-
+
public ApiResponse(int code, String message, T data) {
this.code = code;
this.message = message;