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. 사용자 정보 받기
}