diff --git a/ontime-back/Dockerfile b/ontime-back/Dockerfile index bd19c7f..686ec4b 100644 --- a/ontime-back/Dockerfile +++ b/ontime-back/Dockerfile @@ -1,4 +1,7 @@ FROM openjdk:17 +RUN apk add --no-cache tzdata && \ + ln -snf /usr/share/zoneinfo/Asia/Seoul /etc/localtime && \ + echo "Asia/Seoul" > /etc/timezone WORKDIR /app COPY project.jar app.jar ENTRYPOINT ["java", "-jar", "/app/app.jar"] \ No newline at end of file diff --git a/ontime-back/build.gradle b/ontime-back/build.gradle index f6a9e6d..e03bc4c 100644 --- a/ontime-back/build.gradle +++ b/ontime-back/build.gradle @@ -49,7 +49,7 @@ dependencies { implementation 'com.auth0:java-jwt:4.4.0' // oauth - implementation 'org.springframework.boot:spring-boot-starter-oauth2-client' +// implementation 'org.springframework.boot:spring-boot-starter-oauth2-client' // Swagger implementation 'org.springdoc:springdoc-openapi-starter-webmvc-ui:2.0.2' diff --git a/ontime-back/src/main/java/devkor/ontime_back/controller/SocialAuthController.java b/ontime-back/src/main/java/devkor/ontime_back/controller/SocialAuthController.java index a1b6417..6595dd5 100644 --- a/ontime-back/src/main/java/devkor/ontime_back/controller/SocialAuthController.java +++ b/ontime-back/src/main/java/devkor/ontime_back/controller/SocialAuthController.java @@ -38,7 +38,7 @@ public class SocialAuthController { content = @Content( schema = @Schema( type = "object", - example = "{\n \"accessToken\": \"ya29.xxxxxxx\" }" + example = "{\n \"idToken\": \"eyJhbGxxxxxxx\" ,\n \"refreshToken\": \"\"}}" ) ) ) diff --git a/ontime-back/src/main/java/devkor/ontime_back/dto/SocialUserSignupDto.java b/ontime-back/src/main/java/devkor/ontime_back/dto/SocialUserSignupDto.java deleted file mode 100644 index 1d1864a..0000000 --- a/ontime-back/src/main/java/devkor/ontime_back/dto/SocialUserSignupDto.java +++ /dev/null @@ -1,15 +0,0 @@ -package devkor.ontime_back.dto; - -import lombok.Getter; -import lombok.NoArgsConstructor; -import lombok.ToString; - -import java.sql.Time; - -@ToString -@NoArgsConstructor -@Getter -public class SocialUserSignupDto { - private Integer spareTime; // 여유시간 - private String note; // 주의사항 -} diff --git a/ontime-back/src/main/java/devkor/ontime_back/global/oauth/google/GoogleLoginService.java b/ontime-back/src/main/java/devkor/ontime_back/global/oauth/google/GoogleLoginService.java index 6931fa3..6a1ac45 100644 --- a/ontime-back/src/main/java/devkor/ontime_back/global/oauth/google/GoogleLoginService.java +++ b/ontime-back/src/main/java/devkor/ontime_back/global/oauth/google/GoogleLoginService.java @@ -29,12 +29,12 @@ import java.io.IOException; import java.util.Collections; +import java.util.List; import java.util.Optional; import java.util.UUID; @Slf4j @Service -@RequiredArgsConstructor public class GoogleLoginService { private final JwtTokenProvider jwtTokenProvider; @@ -42,8 +42,19 @@ public class GoogleLoginService { private static final String GOOGLE_USER_INFO_URL = "https://www.googleapis.com/userinfo/v2/me"; private static final String GOOGLE_REVOKE_URL = "https://oauth2.googleapis.com/revoke?token="; - @Value("${spring.security.oauth2.client.registration.google.client-id}") - private String clientId; + private final List validClientIds; + + public GoogleLoginService( + JwtTokenProvider jwtTokenProvider, + UserRepository userRepository, + @Value("${google.web.client-id}") String webClientId, + @Value("${google.app.client-id}") String appClientId + ) { + this.jwtTokenProvider = jwtTokenProvider; + this.userRepository = userRepository; + this.validClientIds = List.of(webClientId, appClientId); + } + public Authentication handleLogin(OAuthGoogleRequestDto oAuthGoogleRequestDto, User user, HttpServletResponse response) throws IOException { user.updateSocialLoginToken(oAuthGoogleRequestDto.getRefreshToken()); @@ -127,7 +138,7 @@ public GoogleIdToken.Payload verifyIdentityToken(String identityToken) throws Ex GoogleIdTokenVerifier verifier = new GoogleIdTokenVerifier.Builder( new NetHttpTransport(), GsonFactory.getDefaultInstance()) - .setAudience(Collections.singletonList(clientId)) // aud 확인 + .setAudience(validClientIds) // aud 확인 .build(); GoogleIdToken idToken = verifier.verify(identityToken); // Google의 공개 키를 사용하여 idToken 서명을 검증