refresh 토큰

    Spring Security 프레임워크로 로그인에 성공하면 JWT 발급하기

    지난 글에서 OAuth2를 통해 로그인을 구현했습니다. 이번 글에서는 로그인에 성공했을 때 사용자에게 Refresh 토큰을 발급해 주고, Refresh 토큰으로 Access 토큰을 발급받아 사용하도록 구현해보겠습니다. JWT 발급 전략 구현하기에 앞서 제가 선택한 JWT 발급 전략에 대해서 설명해보겠습니다. OAuth2 로그인을 시도할 때 CORS 설정이 허용된 애플리케이션 서버에서 요청을 하기 위해서 사용자가 하이퍼링크로 서버의 url에 접근했었습니다. 이로 인해서 주체는 백엔드가 되었고, 클라이언트 페이지로 돌아오기 위해서 리디렉션을 해야 합니다. 따라서 요청과 응답 객체에 토큰을 포함할 경우 사용이 불가능하다는 문제가 생깁니다. 저는 이를 해결하기 위해서 Access 토큰 재발급을 위한 Refres..

    Spring Security 프레임워크로 OAuth2 로그인

    기본적인 이론을 모두 정리했으니 직접 구현해봅시다. Spring Security에서 제공하는 로그인 기능이 아닌 OAuth2를 사용하는 로그인 기능을 구현해보겠습니다. ( form 로그인 방법도 노션에 정리는 해뒀지만,,, OAuth2 보다 작성할 내용이 많아 추후에 하겠습니다. ) 구현할 로그인 과정의 대략적인 순서는 다음과 같습니다. - 클라이언트에서 Spring Boot 서버로 로그인을 요청합니다. - 클라이언트에게 OAuth2 로그인 redirect url을 전달하여 로그인을 시도합니다. - 로그인에 성공하면 OAuth2 리소스 서버에서 사용자의 정보를 가져와 Refresh JWT 를 발급합니다. - 발급된 Refresh JWT를 Redis 에 저장하여 관리하고, 클라이언트에게 쿠키(Http on..