참고 URL :https://developers.naver.com/products/login/api/api.md
1. 위의 사이트에 접속 후 애플리케이션을 등록 해준다. (어렵지 않기 때문에 생략)
2.프론트
<?
//네이버 로그인 접근토큰 요청 예제
$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;
?>
<!-- html -->
<a href="<?=$apiURL?>">네이버 로그인</a>
이때 callback url은 1번에서 등록한 URL과 동일 해야 한다.(www제거)
3.PHP(위에서 적은 콜백 URL 파일)
<?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);
if($status_code == 200) {//로그인 성공
$responseArr = json_decode($response, true);
//회원프로필 조회
$token = $responseArr['access_token'];
$header = "Bearer ".$token;
$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);
curl_close ($ch);
if($status_code == 200) {
//여기서 받은 데이터 조회 후 회원 등록 또는 회원 가입 페이지로 이동 시키면 된다.
echo $response;
} else {
echo "Error 내용:".$response;
}
} else {
echo "Error 내용:".$response;
}
?>
'프로그래밍 > API' 카테고리의 다른 글
[PHP] Apple 로그인 (0) | 2024.12.16 |
---|---|
[API]구글 로그인 API (0) | 2024.01.26 |
YouTube 간단히 연동하기 (0) | 2019.06.27 |