Resolved refresh endpoint issues.
Some checks failed
Build & Deploy Backend / build (push) Failing after 36s
Build & Deploy Backend / deploy (push) Has been skipped

This commit is contained in:
2025-10-10 10:54:37 +08:00
parent 9f68959a29
commit 69721ba411

View File

@@ -163,30 +163,35 @@ public class AuthController {
} }
} }
@PostMapping("/refresh") @PostMapping("/refresh")
public ResponseEntity<?> refreshToken(HttpServletRequest request, HttpServletResponse response) { public ResponseEntity<?> refreshToken(HttpServletRequest request, HttpServletResponse response) {
String token = tokenResolver.resolveToken(request); String token = tokenResolver.resolveToken(request);
if (token != null && jwtUtil.validateToken(token)) { if (token != null && jwtUtil.validateToken(token)) {
String username = jwtUtil.extractUsername(token); String username = jwtUtil.extractUsername(token);
// Generate new token with extended expiry String displayName = jwtUtil.extractDisplayName(token);
String newToken = jwtUtil.generateToken(...); // same params as login String clientIdentifier = jwtUtil.extractClientIdentifier(token);
Long userId = jwtUtil.extractUserId(token);
List<String> roles = jwtUtil.extractRoles(token);
// Set new cookie // Generate new token with extended expiry
ResponseCookie cookie = ResponseCookie.from("authToken", newToken) String newToken = jwtUtil.generateToken(username, displayName, clientIdentifier, userId, roles);
.httpOnly(true)
.secure(true)
.path("/")
.sameSite("None")
.maxAge(60 * 60)
.domain(resolveCookieDomain(request))
.build();
response.addHeader(HttpHeaders.SET_COOKIE, cookie.toString()); // Set new cookie
return ResponseEntity.ok(Map.of("message", "Token refreshed")); ResponseCookie cookie = ResponseCookie.from("authToken", newToken)
} .httpOnly(true)
.secure(true)
.path("/")
.sameSite("None")
.maxAge(60 * 60)
.domain(resolveCookieDomain(request))
.build();
return ResponseEntity.status(401).body(Map.of("error", "Invalid token")); response.addHeader(HttpHeaders.SET_COOKIE, cookie.toString());
} return ResponseEntity.ok(Map.of("message", "Token refreshed"));
}
return ResponseEntity.status(401).body(Map.of("error", "Invalid token"));
}
} }