카카오 로그인 관련 에러

문의 시, 사용하시는 개발환경과 디벨로퍼스 앱ID를 알려주세요.


앱 ID : 1085379

    public String getAccessTokenFromKakaoDeploy(String code) {
        KakaoTokenResponseDto kakaoTokenResponseDto = WebClient.create(KAUTH_TOKEN_URL_HOST)
                .post()
                .uri("/oauth/token")
                .header(HttpHeaders.CONTENT_TYPE, MediaType.APPLICATION_FORM_URLENCODED_VALUE)
                .body(BodyInserters.fromFormData("grant_type", "authorization_code")
                        .with("client_id", clientId)
                        .with("client_secret", clientSecret)
                        .with("code", code)
                        .with("redirect_uri", "https://main--testtig.netlify.app/login/oauth2/code/kakao"))
                .retrieve()
                .onStatus(HttpStatusCode::is4xxClientError, clientResponse -> Mono.error(new BusinessExceptionHandler("Invalid Parameter " + clientResponse.toString(), ErrorCode.BAD_REQUEST_ERROR)))
                .onStatus(HttpStatusCode::is5xxServerError, clientResponse -> Mono.error(new RuntimeException("500 Internal Server Error")))
                .bodyToMono(KakaoTokenResponseDto.class)
                .block();

        log.info(" [Kakao Service] Access Token ------> {}", kakaoTokenResponseDto.getAccessToken());
        log.info(" [Kakao Service] Refresh Token ------> {}", kakaoTokenResponseDto.getRefreshToken());
        log.info(" [Kakao Service] Id Token ------> {}", kakaoTokenResponseDto.getIdToken());
        log.info(" [Kakao Service] Scope ------> {}", kakaoTokenResponseDto.getScope());

        return kakaoTokenResponseDto.getAccessToken();
    }

위와 같은 코드로 카카오 서버에 액세스토큰 요청을 보냈습니다. 근데 다음과 같은 에러가 뜹니다.

java.lang.RuntimeException: 400 Invalid Parameter
	at tig.server.kakao.service.KakaoService.lambda$getAccessTokenFromKakaoDeploy$4(KakaoService.java:76) ~[classes!/:0.0.1-SNAPSHOT]
	Suppressed: reactor.core.publisher.FluxOnAssembly$OnAssemblyException: 
Error has been observed at the following site(s):
	*__checkpoint ⇢ 400 BAD_REQUEST from POST https://kauth.kakao.com/oauth/token [DefaultWebClient]

clientId, clientSecret, code 모두 제대로 들어가는것은 확인 했습니다. redirect_uri 관련 문제일까요?

에러 Body에 Json 형태의 상세 에러메시지가 전달 됩니다. 확인하시면 좀더 수월하게 문제 조치 가능하니 참고 부탁드립니다.


인가 코드요청과 액세스 토큰 발급에 사용한 Redirect URI가 달라서 KOE303에러가 발생한 것으로 보이네요.
동일하게 설정해주시면됩니다.

인가코드: https://main--testtig.netlify.app//login/oauth2/code/kakao
접근토큰: https://localhost:3000/login/oauth2/code/kakao
인가코드: https://main--testtig.netlify.app//login/oauth2/code/kakao
접근토큰: https://main--testtig.netlify.app/login/oauth2/code/kakao
인가코드: https://main--testtig.netlify.app//login/oauth2/code/kakao
접근토큰: https://localhost:3000/login/oauth2/code/kakao
인가코드: https://main--testtig.netlify.app//login/oauth2/code/kakao
접근토큰: https://main--testtig.netlify.app/login/oauth2/code/kakao

이 내용을 보면 액세스 토큰 요청이 두번 이루어진 것 같은데 맞나요?

추가적으로 tim.l 님께서 확인하시는 로그는 제가 확인할 수 없는 것 일까요?

이 내용을 보면 액세스 토큰 요청이 두번 이루어진 것 같은데 맞나요?

두번의 요청이 아니라 redirect_uri를 다르게 설정하신 두가지 케이스 입니다.

추가적으로 tim.l 님께서 확인하시는 로그는 제가 확인할 수 없는 것 일까요?

네, 불가능합니다. 요청하신 코드에 대한 로그이니

어떻게 요청하셨는지 직접 로깅 하셔도 확인 가능합니다.