문의 시, 사용하시는 개발환경과 디벨로퍼스 앱ID를 알려주세요.
___ CodeIgniter프레임워크를 사용하고 있고, 앱 ID는 1011425입니다. kakao developers에 등록한 redirect uri는 http://localhost:8000/login/kakao_callback이고 내부에서도 똑같이 설정했는데 토큰 발급이 안되고 redirect uri mismatch오류가 뜹니다. 코드를 좀 올리자면
$returnCode = $_GET["code"]; // 인가 코드
// 카카오 인증 코드를 교환하여 액세스 토큰을 얻기 위한 요청
$tokenURL = "https://kauth.kakao.com/oauth/token";
$postData = array(
'grant_type' => 'authorization_code',
'client_id' => KAKAO_REST_API(rest_api key넣음),
'redirect_uri' => "http://localhost:8000/login/kakao_callback",
'code' => $returnCode
);
$ch = curl_init($tokenURL);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($postData));
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false);
curl_setopt(
$ch,
CURLOPT_HTTPHEADER,
array(
'Content-Type: application/x-www-form-urlencoded'
)
);
$tokenResponse = curl_exec($ch);
curl_close($ch);
여기서 $returnCode에 인가코드는 잘 담겨있습니다. 이걸 postman에서 url을 "https://kauth.kakao.com/oauth/token"로 설정하고 key value 값을 ‘grant_type’ => ‘authorization_code’,
‘client_id’ => KAKAO_REST_API(rest_api key넣음),
‘redirect_uri’ => “http://localhost:8000/login/kakao_callback”,
‘code’ => $returnCode 로 설정하고 보내면 토큰발급은 됩니다. 하지만 postman을 사용하지 않으면 type mismatch가 뜹니다.