generated from pricelees/issue-pr-template
[#7] API 응답 형식 재정의 및 Swagger-UI 관련 코드 패키지 분리 #8
@ -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()
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user