diff --git a/src/main/java/com/ixxp/culpop/service/UserService.java b/src/main/java/com/ixxp/culpop/service/UserService.java index 9fd097a..ad5c31d 100644 --- a/src/main/java/com/ixxp/culpop/service/UserService.java +++ b/src/main/java/com/ixxp/culpop/service/UserService.java @@ -18,6 +18,7 @@ import javax.servlet.http.Cookie; import javax.servlet.http.HttpServletResponse; import lombok.RequiredArgsConstructor; +import org.springframework.http.ResponseCookie; import org.springframework.security.authentication.BadCredentialsException; import org.springframework.security.core.userdetails.UsernameNotFoundException; import org.springframework.security.crypto.password.PasswordEncoder; @@ -73,8 +74,8 @@ public void login(UserLoginRequest userLoginRequest, HttpServletResponse respons // Cookie 로 accessToken 반환 - Cookie accessTokenCookie = jwtUtil.createAccessTokenCookie(email, user.getRole()); - response.addCookie(accessTokenCookie); + ResponseCookie accessTokenCookie = jwtUtil.createAccessTokenCookie(email, user.getRole()); + response.addHeader("Set-Cookie", accessTokenCookie.toString()); response.setHeader("Cache-Control", "public, max-age=86400"); response.setHeader("Expires", ""); response.setHeader("Pragma", ""); diff --git a/src/main/java/com/ixxp/culpop/util/jwtutil/JwtUtil.java b/src/main/java/com/ixxp/culpop/util/jwtutil/JwtUtil.java index d61f245..6d550b6 100644 --- a/src/main/java/com/ixxp/culpop/util/jwtutil/JwtUtil.java +++ b/src/main/java/com/ixxp/culpop/util/jwtutil/JwtUtil.java @@ -10,6 +10,7 @@ import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Value; +import org.springframework.http.ResponseCookie; import org.springframework.stereotype.Component; import org.springframework.util.StringUtils; import org.springframework.web.util.WebUtils; @@ -67,15 +68,16 @@ public String createAccessToken(String email, UserRoleEnum role) { } // accessToken 에서 Cookie 생성 - public Cookie createAccessTokenCookie(String email, UserRoleEnum role) { + public ResponseCookie createAccessTokenCookie(String email, UserRoleEnum role) { String accessToken = createAccessToken(email, role); - Cookie cookie = new Cookie("AccessToken", accessToken); - cookie.setMaxAge((int) (ACCESS_TOKEN_TIME / 1000)); // 초 단위로 설정 - cookie.setPath("/"); - cookie.setHttpOnly(true); - cookie.setSecure(true); - cookie.setDomain("culpop.shop"); - return cookie; + + return ResponseCookie.from("AccessToken", accessToken) + .path("/") + .httpOnly(true) + .secure(true) + .sameSite("None") + .domain("culpop.shop") + .build(); } // admin token 생성 public String createAdminToken(String email, UserRoleEnum role) {