프로젝트/뉴스피드

[spring security] 로그아웃 기능 구현

writtenbyrla 2024. 1. 26. 01:11

로그인은 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 : 쿠키이름 지정해서 쿠키에 담긴 토큰 삭제 처리

 

 


 

 

 

서버돌려서 화면단에서 개발자 도구 열어서 확인해보면

 

있었는데

로그인

 

 

로그아웃 버튼 누르기만 하면

 

없습니다!

로그아웃