refactor: AuthController의 응답에 ResponseEntity를 적용하기 위한 쿠키 관련 로직 수정

This commit is contained in:
이상진 2025-07-15 11:24:39 +09:00
parent c0b4b96385
commit 651557ca87

View File

@ -2,26 +2,25 @@ package roomescape.auth.web.support
import jakarta.servlet.http.Cookie
import jakarta.servlet.http.HttpServletRequest
import jakarta.servlet.http.HttpServletResponse
import org.springframework.http.ResponseCookie
import roomescape.auth.web.TokenResponse
const val ACCESS_TOKEN_COOKIE_NAME = "accessToken"
fun Cookie.expire(): Unit {
this.value = ""
this.maxAge = 0
}
fun TokenResponse.toCookie(): Cookie = Cookie(ACCESS_TOKEN_COOKIE_NAME, this.accessToken)
.also { it.maxAge = 1800000 }
fun HttpServletRequest.accessTokenCookie(): Cookie = this.cookies
?.firstOrNull { it.name == ACCESS_TOKEN_COOKIE_NAME }
?: Cookie(ACCESS_TOKEN_COOKIE_NAME, "")
fun HttpServletResponse.addAccessTokenCookie(cookie: Cookie) {
cookie.isHttpOnly = true
cookie.secure = true
cookie.path = "/"
this.addCookie(cookie)
}
fun TokenResponse.toResponseCookie(): String = accessTokenCookie(this.accessToken, 1800)
.toString()
fun expiredAccessTokenCookie(): String = accessTokenCookie("", 0)
.toString()
private fun accessTokenCookie(token: String, maxAgeSecond: Long): ResponseCookie =
ResponseCookie.from(ACCESS_TOKEN_COOKIE_NAME, token)
.httpOnly(true)
.secure(true)
.path("/")
.maxAge(maxAgeSecond)
.build()