Added a keep-alive function to the AuthController
Some checks failed
Build & Deploy Backend / build (push) Failing after 35s
Build & Deploy Backend / deploy (push) Has been skipped

This commit is contained in:
2025-10-10 10:50:42 +08:00
parent d639090419
commit 9f68959a29

View File

@@ -162,6 +162,31 @@ public class AuthController {
return ResponseEntity.status(HttpStatus.BAD_REQUEST).body("Incorrect current password");
}
}
@PostMapping("/refresh")
public ResponseEntity<?> refreshToken(HttpServletRequest request, HttpServletResponse response) {
String token = tokenResolver.resolveToken(request);
if (token != null && jwtUtil.validateToken(token)) {
String username = jwtUtil.extractUsername(token);
// Generate new token with extended expiry
String newToken = jwtUtil.generateToken(...); // same params as login
// Set new cookie
ResponseCookie cookie = ResponseCookie.from("authToken", newToken)
.httpOnly(true)
.secure(true)
.path("/")
.sameSite("None")
.maxAge(60 * 60)
.domain(resolveCookieDomain(request))
.build();
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"));
}
}