일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |
- 스프링부트 post api
- REST API
- spring boot post api
- Spring
- Spring REST API
- Oracle
- 자바스크립트 클래스
- 자바스크립트
- egov
- 오라클
- 디자인 패턴
- 스프링
- javascript
- 전자정부 샘플
- exceptiontransfer
- 메이븐
- Intellij
- javascript class
- 스프링 에러
- 인텔리제이
- 전자정부프레임워크
- spring boot CRUD
- 자바스크립트 class
- Spring boot
- spring boot rest api
- spring 설정 파일
- javascript 클래스
- spring boot error
- spring 에러
- pom.xml
- Today
- Total
빵구의 개발 메꾸기
JAVA 쿠키(Cookie) 등록, 조회, 수정, 삭제 활용 본문
클라이언트에 의해 들어온 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일의 만료 시간이 주어진다.)
⑨ 직접적으로 특정 쿠키를 삭제하는 방법이다.
'BACK-END > JAVA' 카테고리의 다른 글
Expected a string but was BEGIN_ARRAY 에러 해결 (0) | 2022.05.26 |
---|---|
HttpURLConnection 활용 (0) | 2022.05.26 |
Jackson 라이브러리 ObjectMapper 활용 (0) | 2022.05.20 |
slf4j VS log4j VS logback VS log4j2 (0) | 2022.05.02 |
윈도우 JDK 버전 변경하기 (0) | 2022.04.20 |