네아로(네이버아이디로 로그인하기) php연동 callback 값에서 access token 추출하기
조회수 3373회
안녕하세요 ^ ^ php로 만들고 있는 사이트가 있는데요 네이버 아이디로 로그인하기 버튼을 삽입해 보려고 합니다
네이버 개발자 센터에서 php 소스로 연동하는는 예제가 있더라구요
예제1 -네이버 로그인 접근토큰 요청
네이버 로그인 접근토큰 획득 예제는 2개의 파일로 구성되어 있습니다. (naverlogin.php, callback.php)
1. naverlogin.php
<?php
// 네이버 로그인 접근토큰 요청 예제
$client_id = "YOUR_CLIENT_ID";
$redirectURI = urlencode("YOUR_CALLBACK_URL");
$state = "RAMDOM_STATE";
$apiURL = "https://nid.naver.com/oauth2.0/authorize?response_type=code&client_id=".$client_id."&redirect_uri=".$redirectURI."&state=".$state;
?><a href="<?php echo $apiURL ?>"><img height="50" src="http://static.nid.naver.com/oauth/small_g_in.PNG"/></a>
2. callback.php
<?php
// 네이버 로그인 콜백 예제
$client_id = "YOUR_CLIENT_ID";
$client_secret = "YOUR_CLIENT_SECRET";
$code = $_GET["code"];;
$state = $_GET["state"];;
$redirectURI = urlencode("YOUR_CALLBACK_URL");
$url = "https://nid.naver.com/oauth2.0/token?grant_type=authorization_code&client_id=".$client_id."&client_secret=".$client_secret."&redirect_uri=".$redirectURI."&code=".$code."&state=".$state;
$is_post = false;
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_POST, $is_post);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$headers = array();
$response = curl_exec ($ch);
$status_code = curl_getinfo($ch, CURLINFO_HTTP_CODE);
echo "status_code:".$status_code."
";
curl_close ($ch);
if($status_code == 200) {
echo $response;
} else {
echo "Error 내용:".$response;
}
?>
요 소스를 적용하는 callback 주소로 설정해 놓은 파일에서 아래와 같은 값이 출력이 되었습니다
여기까지는 되었는데요
callback 으로 받은 값에서 access_token 값을 변수에 담아서 사용하는 과정에서 어려움을 격고 있습니다 또다른 예제인데요
예제2- 회원프로필 조회
// 네이버 API 예제 - 회원프로필 조회
<?php
$token = "YOUR_ACCESS_TOKEN";
$header = "Bearer ".$token; // Bearer 다음에 공백 추가
$url = "https://openapi.naver.com/v1/nid/me";
$is_post = false;
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_POST, $is_post);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$headers = array();
$headers[] = "Authorization: ".$header;
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
$response = curl_exec ($ch);
$status_code = curl_getinfo($ch, CURLINFO_HTTP_CODE);
echo "status_code:".$status_code."<br>";
curl_close ($ch);
if($status_code == 200) {
echo $response;
} else {
echo "Error 내용:".$response;
}
?>
제 생각에는
예제1에서 받은 내용중에 access_token 값을 추출해서
$token이라는 변수에 담고 $_SESSION으로 보내서
예제2 회원프로필 조회에서 받아서 정보를 조회하면 될것 같은데요
과정중에 예제1에서 받은 내용중에 access_token 값을 추출해서 $token이라는 변수에 담아서 $_SESSION으로 보내서
를 어떻게 코드로 짜야 할지 모르겠습니다
네이버 개발자센터에 참고할 글들이 많길래 금방될줄 알았는데 이틀째 끙끙거리고 있네요 ^ ^ 읽어주셔서 감사합니다
-
(•́ ✖ •̀)
알 수 없는 사용자
댓글 입력