Added a keep-alive function to the AuthController
This commit is contained in:
@@ -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"));
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user