Skip to content

Commit 003ddb3

Browse files
authored
Merge pull request #122 from Money-Touch/feat/#57
fix: 소셜로그인 redirect Url 로직 수정
2 parents 595b226 + 861fbf9 commit 003ddb3

File tree

3 files changed

+23
-11
lines changed

3 files changed

+23
-11
lines changed

src/main/java/com/server/money_touch/domain/user/controller/AuthController.java

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -37,8 +37,10 @@ public class AuthController {
3737
@ApiErrorCodeExample(value = ErrorStatus.class, name = "_INTERNAL_SERVER_ERROR"),
3838
})
3939
@GetMapping("/auth/login/kakao")
40-
public ApiResponse<UserResponse.UserCreateResultDTO> kakaoLogin(@RequestParam("code") String accessCode, HttpServletResponse httpServletResponse) {
41-
User user = authService.oAuthLogin(accessCode, httpServletResponse);
40+
public ApiResponse<UserResponse.UserCreateResultDTO> kakaoLogin(@RequestParam("code") String accessCode, @RequestParam("redirectUri") String redirectUri,HttpServletResponse httpServletResponse) {
41+
User user = authService.oAuthLogin(accessCode,redirectUri, httpServletResponse);
4242
return ApiResponse.onSuccess(UserConverter.toUserCreateResultDTO(user));
4343
}
44+
45+
4446
}

src/main/java/com/server/money_touch/domain/user/service/user/AuthService.java

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -38,8 +38,11 @@ public class AuthService {
3838
private final BudgetCommandService budgetCommandService;
3939
private final TotalConsumptionRepository totalConsumptionRepository;
4040

41-
public User oAuthLogin(String accessCode, HttpServletResponse httpServletResponse) {
42-
KakaoDTO.OAuthToken oAuthToken = kakaoUtil.requestToken(accessCode);
41+
public User oAuthLogin(String accessCode,String redirectUri, HttpServletResponse httpServletResponse) {
42+
// 1. access token 요청 시 동적 redirectUri 전달
43+
KakaoDTO.OAuthToken oAuthToken = kakaoUtil.requestToken(accessCode, redirectUri);
44+
45+
// 2. 카카오 프로필 조회
4346
KakaoDTO.KakaoProfile kakaoProfile = kakaoUtil.requestProfile(oAuthToken);
4447
String email = kakaoProfile.getKakaoAccount().getEmail();
4548

src/main/java/com/server/money_touch/domain/user/utils/KakaoUtil.java

Lines changed: 14 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -22,21 +22,28 @@
2222
public class KakaoUtil {
2323

2424
@Value("${oauth.kakao.client-id}")
25-
private String client;
26-
@Value("${oauth.kakao.redirect-uri}")
27-
private String redirect;
25+
private String clientId;
2826

29-
public KakaoDTO.OAuthToken requestToken(String accessCode) {
27+
public String buildAuthUrl(String dynamicRedirectUri) {
28+
return "https://kauth.kakao.com/oauth/authorize"
29+
+ "?response_type=code"
30+
+ "&client_id=" + clientId
31+
+ "&redirect_uri=" + dynamicRedirectUri;
32+
}
33+
// @Value("${oauth.kakao.redirect-uri}")
34+
// private String redirect;
35+
36+
public KakaoDTO.OAuthToken requestToken(String accessCode, String redirectUri) {
3037
RestTemplate restTemplate = new RestTemplate();
3138
HttpHeaders headers = new HttpHeaders();
3239
headers.add("Content-Type", "application/x-www-form-urlencoded;charset=utf-8");
3340

3441
MultiValueMap<String, String> params = new LinkedMultiValueMap<>();
3542
params.add("grant_type", "authorization_code");
36-
params.add("client_id", client);
37-
params.add("redirect_uri", redirect);
43+
params.add("client_id", clientId);
44+
params.add("redirect_uri", redirectUri); // 동적 값
3845
params.add("code", accessCode);
39-
log.info("client_id: {}, redirect_uri: {}", client, redirect);
46+
log.info("client_id: {}, redirect_uri: {}", clientId, redirectUri);
4047
log.info("accessCode: {}", accessCode);
4148

4249
HttpEntity<MultiValueMap<String, String>> kakaoTokenRequest = new HttpEntity<>(params, headers);

0 commit comments

Comments
 (0)