카카오 로그인 - 사용자 정보를 가져오지 못합니다

로그인은 아래의 소스로 합니다.
php로 키 값은 넣었고 … 로그인은 잘되서 콜백 경로로 … 잘 이동합니다.
리턴 값은
code=9mwU8XXLi7DybjzcHY_PvESCMVJvJN9EV1mOmpl8_no79UONC-27UmgyclaRlrJnB_hxugorDKcAAAFzolj6Pg
이렇게 파라미터값이 넘어오고 정상으로 보이는데…

콜백받은 곳에서 … 사용자의 이메일과 닉네임을 가져오려고 하는데.
에러가 나네요.

https://kapi.kakao.com/v2/user/me 에서 {“msg”:“no authentication key!”,“code”:-401} 메세지가 떨어집니다.

토큰을 가져오지 못해서 … 그런거 같은데…

콜백위치에서 … 어떻게 토큰을 가져올 수 있을까요?

로그인 시 소스

Kakao.init('<?=$kakao_id_key?>');

function loginWithKakao(){
	Kakao.Auth.authorize({
		// 초기화한 앱의 로그인 Redirect URI에 등록된 URI여야 합니다.
		redirectUri: '<?=$kakao_callback_url?>'
	});
}

// 아래는 데모를 위한 UI 코드입니다.
getToken();
function getToken(){
	const token = getCookie('authorize-access-token');
	if(token){
		Kakao.Auth.setAccessToken(token);			
		document.getElementById('token-result').innerText = 'login success. token: ' + Kakao.Auth.getAccessToken();
	}
}
function getCookie(name){
	const value = "; " + document.cookie;
	const parts = value.split("; " + name + "=");
	if (parts.length === 2) return parts.pop().split(";").shift();
}

콜백 위치에서 사용자 정보를 가져오는 소스

Kakao.init('".KAKAO_ID_KEY."');
Kakao.API.request({
	url: '/v2/user/me'
	, success: function(res){
		console.log(JSON.stringify(res));			
	}
	, fail: function(error){
		alert('login success, but failed to request user information: '+JSON.stringify(error));
	}
});

API 요청을 하기 위해서는 다음의 과정이 순차적으로 이루어져야 합니다.
Authorization Code 발급 -> Access Token 발급 -> API 요청

남겨주신 코드를 보니 Access Token 요청 로직이 빠진 것이 원인인데요.
API 요청을 하시기 전에 Access Token 발급을 받으셔야 합니다.
Kakao.Auth.authorize() 사용할 때는 서버에서 REST API를 통해 Access Token을 발급 받으셔야 합니다. (https://developers.kakao.com/docs/latest/ko/kakaologin/rest-api#request-token)

Access Token을 발급 받은 후, API 요청 방법은 두 가지 방식이 있습니다.

  1. REST API (권장)
    • 발급 받은 Access Token을 이용하여 서버에서 REST API로 /v2/user/me를 요청합니다.
  2. JS SDK
1개의 좋아요