본문 바로가기

Spring

[Spring] Spring Boot + Spring Security OAuth2 Client + Kakao Login - 2

반응형

Spring Security OAuth2 Client 라이브러리 사용 시 access token 을 갱신하는 부분에 대한 언급이 없어 찾고 찾다가 내부적으로 갱신된다는 부분을 찾아서 혹시 헤메고 있는 다른분이 있으시다면 도움이 되고자 정리해본다 !

 

 

권한 부여 타입이 authorization_code, password 일 때만 액세스 토크 응답에 OAuth2RefreshToken 이 들어있다.

만약 OAuth2AuthorizedClient.getRefreshToken() 을 사용할 수 있고 OAuth2AuthorizedClient.getAccessToken() 이 만료됬다면 RefreshTokenOAuth2AuthorizedClientProvider 가 토큰을 자동으로 갱신한다.

 

레퍼런스 페이지에서 위와 같이 정리되어있지만.. 눈에 보이지 않아 확신할 수 없었기 때문에 디버깅을 통해 확인해보았다

 

1. OAuth2ClientConfiguration.class

 

 

OAuth2ClientConfiguration.class 에서 DefaultOAuth2AuthorizedClientManager 객체를 세팅한다.

 

2. DefaultOAuth2AuthorizedClientManager.class

 

 

DefaultOAuth2AuthorizedClientManager.class 에서 변수로 OAuth2AuthorizedClientProviderBuilder 를 세팅한다.

 

3. OAuth2AuthorizedClientProviderBuilder.class

 

 

refreshToken 함수에서 RefreshTokenOAuth2AuthorizedClientProvider 를 세팅한다

 

4. RefreshTokenOAuth2AuthorizedClientProvider.class

 

 

authorize 함수를 보면 refresh token이 null이 아니고, access token이 만료되었을 때

다시 토큰을 발급받는 부분을 찾을 수 있었다

 

 

reference : https://docs.spring.io/spring-security/site/docs/5.3.2.RELEASE/reference/html5/#refreshing-an-access-token

반응형