안녕하세요.

 

이번에는 네이버 SNS 로그인 구현 방법을 알려드립니다.

카카오톡이나 네이버나 똑같이 login.php, callback.php가 필요합니다.

만약 제 블로그에있는 카카오톡 로그인으로 구현하였다면 네이버도 금방 되실거에요.

 

* 스크립트 이름을 명시하겠습니다.

1. http://test_lee.co.kr/login.php

2. http://test_lee.co.kr/callback.php 

 

 

1. 네이버 개발자 센터 등록 및 key 받기

  1.1. https://developers.naver.com/main/ 접속.

  1.2. 상단에 어플리케이션 > 어플리케이션 등록 클릭.

  1.3. 어플리케이션 이름과 사용 API를 네이로 클릭.

  1.4. 제공 정보 선택에 체크 (필요한 정보를 체크 하시면 됩니다.)

  1.5. 환경에는 PC웹을 선택.

  1.6. 서비스 URL http://test_lee.co.kr/

  1.7. 로그인 Callback URL  http://test_lee.co.kr/callback.php 추가

 

2. login.php

 


define('NAVER_CLIENT_ID', '내어플리케이션 > 어플리케이션 정보 > Client ID');
define('NAVER_CLIENT_SECRET', '내어플리케이션 > 어플리케이션 정보 > Client Secret');
define('NAVER_CALLBACK_URL', 'http://test_lee.co.kr/callback.php);

 

$naverUrl = "https://nid.naver.com/oauth2.0/authorize?response_type=code&client_id=".NAVER_CLIENT_ID."&redirect_uri=".urlencode(NAVER_CALLBACK_URL);

 

<html>

<body>

   <a href="<?=$naverUrl ?>"> <img src="네이버 로그인 이미지" title="네이버 로그인" alt="" style="width:30px"/></a>

</body>

</html>


3. callback.php


define('NAVER_CLIENT_ID', '내어플리케이션 > 어플리케이션 정보 > Client ID'');
define('NAVER_CLIENT_SECRET', '내어플리케이션 > 어플리케이션 정보 > Client Secret'); 
define('NAVER_CALLBACK_URL', 'http://test_lee.co.kr/callback.php');

 

$naver_curl = "https://nid.naver.com/oauth2.0/token?grant_type=authorization_code&client_id=".NAVER_CLIENT_ID."&client_secret=".NAVER_CLIENT_SECRET."&redirect_uri=".urlencode(NAVER_CALLBACK_URL)."&code=".$_GET['code'];
// 토큰값 가져오기 
$is_post = false; 
$ch = curl_init(); 
curl_setopt($ch, CURLOPT_URL, $naver_curl); 
curl_setopt($ch, CURLOPT_POST, $is_post); 
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); 
$response = curl_exec ($ch); 
$status_code = curl_getinfo($ch, CURLINFO_HTTP_CODE); 
curl_close ($ch); 
if($status_code == 200){ 
$responseArr = json_decode($response, true); 
  // 토큰값으로 네이버 회원정보 가져오기 
  $headers = array( 'Content-Type: application/json', sprintf('Authorization: Bearer %s', $responseArr['access_token']) ); 
  $is_post = false; 
  $me_ch = curl_init(); 
  curl_setopt($me_ch, CURLOPT_URL, "https://openapi.naver.com/v1/nid/me"); 
  curl_setopt($me_ch, CURLOPT_POST, $is_post ); 
  curl_setopt($me_ch, CURLOPT_HTTPHEADER, $headers); 
  curl_setopt($me_ch, CURLOPT_RETURNTRANSFER, true); 
  $res = curl_exec ($me_ch); 
  curl_close ($me_ch); 
  $res_data = json_decode($res , true); 
   
  if ($res_data ['response']['id']) { 
  //해당 아이디값을 정상적으로 가져온다면 디비에 해당 아이디로 회원가입 여부 확인 하여 회원 가입을 하였으면 자동 로그인 구현.

 
   if(이미 가입된 회원이면){
      //자동 로그인
      exit;
    }

 }

 

## 개인정보를 더 받는다면 회원가입 페이지로 location하고 아니면 프로필 정보 가져온곳에서 회원가입을 시켜주면 됩니다.

 


감사합니다.

궁금하신거는 댓글 달아주세요^^.

+ Recent posts