카카오 로그인 RESTAPI

asp.net으로 카카오 로그인 기능 추가하고 있습니다.

문서 나온대로 잘 넘기는 것 같은데… 왜 계속 Unauthorze 응답 받을까요?

RestAPI 키와 Client Secret 키는 문제 없이 잘 넘기고 있습니다.

직접 POSTMAN으로 https://kauth.kakao.com/oauth/token 를 호출했을때
Bad client credentials (KOE010)만 뜹니다.
문제 해결 | Kakao Developers 문제 해결 확인해보면
Client Secret 값 미제공이 원인이라는데 애초에 저는 그거를 활성화 하지 않았습니다.

public async Task<LoginAuthDto> KakaoSignin(LoginKakaoRequestDto kakaoLogin)
{
    // 1. 카카오 인가 코드 받기 -- kakaoAuth.code

    // 2. 토큰 받기
    using (var client = _clientFactory.CreateClient(HttpClientConst.KakaoOAuthClient))
    {
        client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/x-www-form-urlencoded"));

        Dictionary<string, string> formData = new Dictionary<string, string>();
        formData.Add("grant_type", "authorization_code");
        formData.Add("client_id", _appSettings.KakaoOAuth.RestApiKey);
        formData.Add("redirect_uri", HttpUtility.UrlEncode(_appSettings.KakaoOAuth.RedirectUrl));
        formData.Add("client_secret", _appSettings.KakaoOAuth.ClientSecret);
        formData.Add("code", kakaoLogin.Code);

        var tokenRequest = new FormUrlEncodedContent(formData);

        // https://kauth.kakao.com/oauth/token
        var response = await client.PostAsJsonAsync("oauth/token", tokenRequest);
        if (response.IsSuccessStatusCode)
        {
            var responseJson = await response.Content.ReadAsStringAsync();
        }
        else
        {
            var errorContent = await response.Content.ReadAsStringAsync();
            return null;
        }
    }

    return null;

    // 3. 사용자 정보 받기
}

json으로 전달하고 계시는데요 client.PostAsync 으로 form 데이터 그대로 전달 부탁드립니다

답변 감사합니다.

PostAsync + PostAsJsonAsync 둘다 해봤는데도 401 응답만 오고 있습니다.

글 내용 편집했는데… 추가적으로 직접 Postman으로 카카오 oauth/token 호출 했을때는 KOE010 응답 받고 있습니다.
하지만 저는 client secret 활성화 한적이 없습니다.

확인을 위해 앱 ID 부탁드립니다.


앱ID
https://developers.kakao.com/ 의 내 애플리케이션>앱 설정>요약 정보 : 기본정보에 있는 앱 ID
숫자로된 ID 입니다

ex) 123456

1131323OWNER 입니다!

혹시 몰라 보안 > secret도 만들어서 해당 값으로 client_secret 추가하여 호출해봤는데도 동일한 결과가 나오네요

디버그 모드에서 요청시 사용된 파라미터와 응답 내용을 출력 부탁드립니다.
디벨로퍼스 설정보다는 요청이 잘못 이루어지는 것으로 보입니다.

지금은 KOE303 오류가 발생하고 있습니다.
인가코드와 접근토큰 발급시 사용된 redirect_uri가 다른경우 해당 오류가 발생하는점 참고 부탁드립니다.

UrlEncode 는 FormUrlEncodedContent가 하기에 필요 없어 보입니다.

엇… 말해주신대로 해보니까 잘됩니다 이제…
감사합니다!