로그인은 JWT 생성한 서버에서 쿠키를 직접 생성해 Client의 Header로 전달하는 방식으로 구현했다.
로그아웃은 어떻게 할 것인가?
한번 발급된 토큰은 만료될때까지 삭제가 되지 않기 때문에 쿠키에서 지워주는 방식으로 구현할 것이다.
Handling Logouts :: Spring Security
If you are using Java configuration, you can add clean up actions of your own by calling the addLogoutHandler method in the logout DSL, like so: Custom Logout Handler CookieClearingLogoutHandler cookies = new CookieClearingLogoutHandler("our-custom-cookie"
docs.spring.io
Spring 공식문서를 살펴보면
왼쪽 상단에는 Spring Security 버전별로 선택할 수 있고 아래 메뉴에 기능별로 내용이 나와있다.
버전확인 하는 법
프로젝트 하단 External Libraries를 펼쳐보면 확인 가능하다.
로그아웃 설정은 WebSecurityConfig 클래스 SecurityFilterChain에서 작업해줬다.
인터넷 검색해봤을때 표현법이 조금씩 달라서 알아봤더니 Spring Security 5 이후로는 람다표현식을 쓰는 걸로 바뀌었다.
'logout()' is deprecated and mared for removal이 뜬다고 당황하지말고 공식문서를 무조건 우선으로 보자.
어떤 상황이든 내가 쓰고있는 버전을 알고 공식문서만 있으면 어디든 갈 수 있...
아래 logout부터 로그아웃 처리하는 부분이다.
logoutUrl : 로그아웃 실행할 api
logoutSuccessUrl : 로그아웃 완료 시 이동할 페이지 주소
deleteCookies : 쿠키이름 지정해서 쿠키에 담긴 토큰 삭제 처리
서버돌려서 화면단에서 개발자 도구 열어서 확인해보면
있었는데
로그아웃 버튼 누르기만 하면
없습니다!
'프로젝트 > 뉴스피드' 카테고리의 다른 글
[Spring boot + AWS S3] 이미지 저장하기(프로필, 게시글 이미지) (0) | 2024.02.15 |
---|---|
[회고][프로젝트 5~12일차] 다시 1일차로 돌아간 이야기 (0) | 2024.02.04 |
[회고][프로젝트 2~4일차] 회원가입, 로그인 기능 구현 (0) | 2024.01.27 |
[회고][프로젝트 1일차] 환경 세팅, API 명세서 작성, ERD 설계, 테이블 생성 (0) | 2024.01.24 |
Intellij - MySQL 연결 오류 (com.mysql.cj.jdbc.Driver) (0) | 2024.01.24 |