添加了重生成token
Change-Id: I82a372b10cabf1acea6014d8ce9f3b960ef5245a
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);
+ }
}