1212import org .devkor .apu .saerok_server .domain .auth .core .service .UserProvisioningService ;
1313import org .devkor .apu .saerok_server .domain .auth .infra .SocialAuthClient ;
1414import org .devkor .apu .saerok_server .domain .auth .core .dto .SocialUserInfo ;
15+ import org .devkor .apu .saerok_server .global .security .crypto .DataCryptoService ;
16+ import org .devkor .apu .saerok_server .global .security .crypto .EncryptedPayload ;
1517import org .devkor .apu .saerok_server .global .util .dto .ClientInfo ;
1618import org .springframework .http .HttpHeaders ;
1719import org .springframework .http .ResponseEntity ;
1820
21+ import java .nio .charset .StandardCharsets ;
22+
1923@ Slf4j
2024@ RequiredArgsConstructor
2125@ Transactional
@@ -24,6 +28,7 @@ public abstract class AbstractSocialAuthService {
2428 private final SocialAuthRepository socialAuthRepository ;
2529 private final AuthTokenFacade authTokenFacade ;
2630 private final UserProvisioningService userProvisioningService ;
31+ private final DataCryptoService dataCryptoService ;
2732
2833 protected abstract SocialAuthClient client ();
2934
@@ -37,6 +42,12 @@ public ResponseEntity<AccessTokenResponse> authenticate(String authorizationCode
3742 .findByProviderAndProviderUserId (provider , userInfo .sub ())
3843 .orElseGet (() -> userProvisioningService .provisionNewUser (provider , userInfo ));
3944
45+ if (userInfo .refreshToken () != null ) {
46+ log .info ("소셜 공급자로부터 받은 리프레시 토큰: {}" , userInfo .refreshToken ());
47+ EncryptedPayload payload = dataCryptoService .encrypt (userInfo .refreshToken ().getBytes (StandardCharsets .UTF_8 ));
48+ socialAuth .setRefreshToken (payload );
49+ }
50+
4051 AuthBundle bundle = authTokenFacade .issueTokens (
4152 socialAuth .getUser (),
4253 ci
0 commit comments