1818import jakarta .servlet .http .HttpServletResponse ;
1919import lombok .RequiredArgsConstructor ;
2020import lombok .extern .slf4j .Slf4j ;
21+ import org .springframework .beans .factory .annotation .Autowired ;
2122import org .springframework .beans .factory .annotation .Value ;
2223import org .springframework .http .HttpEntity ;
2324import org .springframework .http .HttpHeaders ;
@@ -50,19 +51,35 @@ public class GoogleLoginService {
5051 private static final String GOOGLE_REVOKE_URL = "https://oauth2.googleapis.com/revoke?token=" ;
5152
5253 private final List <String > validClientIds ;
54+ private final RestTemplate revokeRestTemplate ;
5355
56+ @ Autowired
5457 public GoogleLoginService (
5558 JwtTokenProvider jwtTokenProvider ,
5659 UserRepository userRepository ,
5760 UserAlarmSettingRepository userAlarmSettingRepository ,
5861 AnalyticsPreferenceService analyticsPreferenceService ,
5962 @ Value ("${google.web.client-id}" ) String webClientId ,
6063 @ Value ("${google.app.client-id}" ) String appClientId
64+ ) {
65+ this (jwtTokenProvider , userRepository , userAlarmSettingRepository , analyticsPreferenceService ,
66+ webClientId , appClientId , createRevokeRestTemplate ());
67+ }
68+
69+ GoogleLoginService (
70+ JwtTokenProvider jwtTokenProvider ,
71+ UserRepository userRepository ,
72+ UserAlarmSettingRepository userAlarmSettingRepository ,
73+ AnalyticsPreferenceService analyticsPreferenceService ,
74+ String webClientId ,
75+ String appClientId ,
76+ RestTemplate revokeRestTemplate
6177 ) {
6278 this .jwtTokenProvider = jwtTokenProvider ;
6379 this .userRepository = userRepository ;
6480 this .userAlarmSettingRepository = userAlarmSettingRepository ;
6581 this .analyticsPreferenceService = analyticsPreferenceService ;
82+ this .revokeRestTemplate = revokeRestTemplate ;
6683 this .validClientIds = Stream .concat (
6784 Stream .of (webClientId ),
6885 Stream .of (appClientId .split ("," ))
@@ -75,6 +92,13 @@ public GoogleLoginService(
7592 .toList ());
7693 }
7794
95+ private static RestTemplate createRevokeRestTemplate () {
96+ SimpleClientHttpRequestFactory requestFactory = new SimpleClientHttpRequestFactory ();
97+ requestFactory .setConnectTimeout (3000 );
98+ requestFactory .setReadTimeout (3000 );
99+ return new RestTemplate (requestFactory );
100+ }
101+
78102
79103 public Authentication handleLogin (OAuthGoogleRequestDto oAuthGoogleRequestDto , User user , HttpServletResponse response ) throws IOException {
80104 user .updateSocialLoginToken (oAuthGoogleRequestDto .getRefreshToken ());
@@ -133,7 +157,7 @@ public Authentication handleRegister(OAuthGoogleRequestDto oAuthGoogleRequestDto
133157
134158 User savedUser = userRepository .save (newUser );
135159
136- String accessToken = jwtTokenProvider .createAccessToken (newUser .getEmail (), newUser .getId ());
160+ String accessToken = jwtTokenProvider .createAccessToken (savedUser .getEmail (), savedUser .getId ());
137161 String refreshToken = jwtTokenProvider .createRefreshToken ();
138162
139163 jwtTokenProvider .sendAccessAndRefreshToken (response , accessToken , refreshToken );
@@ -233,18 +257,14 @@ public boolean revokeToken(Long userId) {
233257
234258 String googleRefreshToken = user .getSocialLoginToken ();
235259
236- SimpleClientHttpRequestFactory requestFactory = new SimpleClientHttpRequestFactory ();
237- requestFactory .setConnectTimeout (3000 );
238- requestFactory .setReadTimeout (3000 );
239- RestTemplate restTemplate = new RestTemplate (requestFactory );
240260 String revokeUrl = GOOGLE_REVOKE_URL + googleRefreshToken ;
241261
242262 HttpHeaders headers = new HttpHeaders ();
243263 headers .set ("Content-Type" , "application/x-www-form-urlencoded" );
244264
245265 HttpEntity <String > request = new HttpEntity <>(headers );
246266
247- ResponseEntity <String > response = restTemplate .exchange (
267+ ResponseEntity <String > response = revokeRestTemplate .exchange (
248268 revokeUrl , HttpMethod .POST , request , String .class );
249269
250270 return response .getStatusCode ().is2xxSuccessful ();
0 commit comments