빵구의 개발 메꾸기

JAVA 쿠키(Cookie) 등록, 조회, 수정, 삭제 활용 본문

BACK-END/JAVA

JAVA 쿠키(Cookie) 등록, 조회, 수정, 삭제 활용

bkjo94 2022. 5. 23. 16:06

클라이언트에 의해 들어온 HttpRequest안에 담긴 쿠키(Cookie)를 가져와서 담긴 데이터를 확인하거나

HttpResponse로 클라이언트에게 내보내줄 쿠키(Cookie)에 대해 데이터를 담을 경우가 있다.

어떻게 활용해야 하는지 알아보자.

 

 

 

<쿠키(Cookie) CRUD 활용 방법>

현재 내가 쿠키를 활용한 상황은 Controller가 실행되기 전에 Interceptor로 클라이언트의 요청을 가로채고 현재 세션에 로그인 여부를 확인해서 쿠키를 활용한 상황이다.

로그인을 하면 JWT토큰을 발급받는 API를 호출해서 쿠키에 담기게 되어 있는 구현이 된 상황이고 로그인이 되지 않은 상황에서는 쿠키에 JWT토큰이 담겨있으면 안된다.

또한 로그인이 되어있음에도 사이트를 이용할 때 JWT토큰의 만료 시간이 지난 경우 refresh 토큰을 요청하는 API를 호출하는 상황이다.

 

① 클라이언트의 요청으로부터 넘어온 쿠키 목록을 확인한다.

② 쿠키 목록중에 쿠키 이름이 token인지 체크한다.

③ 쿠키 이름이 token인 이름이 있다면 value값을 가져온다.

④ responseCode가 401인 상황은 토큰의 만료 시간이 지난 것을 의미하고 이 경우 refresh 토큰을 요청하는 API를

    호출하여 받아온 refresh 토큰에 대해 token이란 이름으로 쿠키를 등록하고 있다.

⑤ 해당 쿠키에 대해 접근 가능한 경로를 설정한다.

해당 쿠키에 대해 주석을 넣을 수 있다.

HttpResponse로 클라이언트에게 내보내줄 쿠키를 담는다.

⑧ 로그인이 되어 있지 않은 경우 쿠키에 token이 존재하는 경우 해당 쿠키를 삭제해야 한다.

    하지만 쿠키를 remove하는 메서드는 없기 때문에 쿠키의 만료 시간을 0으로 설정해준다.

    (만약 60*60*24로 설정하는 경우는 1일의 만료 시간이 주어진다.)

⑨ 직접적으로 특정 쿠키를 삭제하는 방법이다.

Comments