From 4e2da0debce14b94aad76dedce4c02a7a36bc7e1 Mon Sep 17 00:00:00 2001 From: siujamo Date: Thu, 4 Jun 2026 14:47:45 +0800 Subject: [PATCH] feat: add expire time into login response --- .../deltaforceguide/controller/AuthController.java | 5 ++++- .../deltaforceguide/domain/dto/UserResponse.java | 10 +++++++--- 2 files changed, 11 insertions(+), 4 deletions(-) diff --git a/src/main/java/com/onixbyte/deltaforceguide/controller/AuthController.java b/src/main/java/com/onixbyte/deltaforceguide/controller/AuthController.java index 0a42067..db0f42e 100644 --- a/src/main/java/com/onixbyte/deltaforceguide/controller/AuthController.java +++ b/src/main/java/com/onixbyte/deltaforceguide/controller/AuthController.java @@ -18,6 +18,7 @@ import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; import java.time.Duration; +import java.time.LocalDateTime; /** * REST controller for user authentication endpoints (login, logout). @@ -43,12 +44,14 @@ public class AuthController { @PostMapping("/login") public ResponseEntity login(@Validated @RequestBody LoginRequest request) { var user = authService.login(request); + var currentTime = LocalDateTime.now(); var accessToken = tokenClient.generateToken(user); var accessTokenCookie = cookieService.buildCookie(CookieName.ACCESS_TOKEN, accessToken); + var cookieMaxAge = accessTokenCookie.getMaxAge(); return ResponseEntity.ok() .header(HttpHeaders.SET_COOKIE, accessTokenCookie.toString()) - .body(UserResponse.from(user)); + .body(UserResponse.from(user, currentTime.plus(cookieMaxAge))); } @RequiresAuth diff --git a/src/main/java/com/onixbyte/deltaforceguide/domain/dto/UserResponse.java b/src/main/java/com/onixbyte/deltaforceguide/domain/dto/UserResponse.java index b20231b..4a2d82d 100644 --- a/src/main/java/com/onixbyte/deltaforceguide/domain/dto/UserResponse.java +++ b/src/main/java/com/onixbyte/deltaforceguide/domain/dto/UserResponse.java @@ -2,6 +2,8 @@ package com.onixbyte.deltaforceguide.domain.dto; import com.onixbyte.deltaforceguide.domain.entity.User; +import java.time.LocalDateTime; + /** * Response DTO for a user account, including associated credentials. * @@ -10,13 +12,15 @@ import com.onixbyte.deltaforceguide.domain.entity.User; public record UserResponse( Long id, String username, - String email + String email, + LocalDateTime expiration ) { - public static UserResponse from(User user) { + public static UserResponse from(User user, LocalDateTime expiration) { return new UserResponse( user.getId(), user.getUsername(), - user.getEmail() + user.getEmail(), + expiration ); } }