require $_SERVER['DOCUMENT_ROOT'].'/lib/global.php';
session_start();
//네이버 로그인
define('NAVER_CLIENT_ID','KL6_XnyP_mgXDtmHD6JE');
define('NAVER_CLIENT_SECRET','5nTjD8Mvnt');
define('NAVER_CALLBACK_URL','https://lifeadvisor.ncue.net/naver_proc.php');
if($_SESSION["naver_state"] != $_GET['state'])
{
echo ("
");
exit;
}
$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"]."&state=".$_GET["state"];
//토큰값 가져오기
$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);
$_SESSION["naver_access_token"] = $responseArr["access_token"];
$_SESSION["naver_refresh_token"] = $responseArr["refresh_token"];
//토큰 값으로 네이버 회원정보 가져오기
$me_headers = array(
'Content-Type: application/json',
sprintf('Authorization: Bearer %s', $responseArr["access_token"])
);
$me_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,$me_is_post);
curl_setopt($me_ch,CURLOPT_HTTPHEADER,$me_headers);
curl_setopt($me_ch,CURLOPT_RETURNTRANSFER,true);
$me_response = curl_exec($me_ch);
$me_status_code = curl_getinfo($me_ch,CURLINFO_HTTP_CODE);
curl_close($me_ch);
$me_responseArr = json_decode($me_response,true);
if ($me_responseArr['response']['id']) {
// 회원아이디(naver_ 접두사에 네이버 아이디를 붙여줌)
//$m_id = 'naver_'.$me_responseArr['response']['id']; // 회원가입 DB에서 회원이 있으면(이미 가입되어 있다면) 토큰을 업데이트 하고 로그인함
$m_id = $me_responseArr['response']['id']; // 회원가입 DB에서 회원이 있으면(이미 가입되어 있다면) 토큰을 업데이트 하고 로그인함
$chkProfile = getValue("_MEMBER"," where m_id='".$m_id."' and m_logintype='naver'","ar","*");
if ($chkProfile) { // 멤버 DB에 토큰값 업데이트
//$responseArr['access_token'] // 로그인
$MEMIDX = $chkProfile["m_idx"];
if($chkProfile["m_level"]=="user")
{
$_SET_LEVEL = "1";
$locationUrl = "index.siso";
}else{
$_SET_LEVEL = "1";
$locationUrl = "reg_profile.siso?idx=".$MEMIDX;
}
}else{ // 회원정보가 없다면 회원가입
// 회원아이디 $mb_uid
$mb_nickname = $me_responseArr['response']['nickname']; // 닉네임
$mb_email = $me_responseArr['response']['email']; // 이메일
$mb_gender = $me_responseArr['response']['gender']; // 성별 F: 여성, M: 남성, U: 확인불가
$mb_age = $me_responseArr['response']['age']; // 연령대
$mb_birthday = $me_responseArr['response']['birthday']; // 생일(MM-DD 형식)
$mb_profile_image = $me_responseArr['response']['profile_image']; // 프로필 이미지
// 멤버 DB에 토큰과 회원정보를 넣고 로그인
$isql = "insert into _MEMBER set m_id='".$m_id."', m_pass='".$m_id."', m_email='".$mb_email."', regdate = now(), m_ip = '".$_SERVER["REMOTE_ADDR"]."', m_agent = '".$_SERVER["HTTP_USER_AGENT"]."', m_expire_date = '0000-00-00', m_expire_time = '00:00:00', m_use = 'Y', m_level = 'user', m_lastlogindate = now(), m_logintype='naver',m_name='".$mb_nickname."', m_gender='".$mb_gender."',m_birth='".$mb_birthday."' ";
//echo $isql;
//exit;
$irs = query($isql);
if($irs)
{
$MEMIDX = insert_id();
$SET_LEVEL = "1";
$locationUrl = "reg_profile.siso?idx=".$MEMIDX;
if($mb_email)
{
$maillink = "https://lifeadvisor.ncue.net/mailaccept.php?midx=".$MEMIDX."&memail=".$profile["email"];
$mailcontents = "아래 이메일 주소를 클릭하여 정식회원이 되세요.
인증 하기";
//1. 이메일 인증 메일 전송
//$sendMail = sendMail('yds5004@naver.com', '인연톡', '인연톡 이메일 인증' ,$mailcontents, $profile["email"], "인연톡 임시회원", true);
}
}else{
echo ("
");
exit;
}
}
//회원이 로그인처리했다고 파악하고 세션 생성후 메인페이지로 보낸다.
setSession('_IDX', $MEMIDX);
setSession('_LEVEL', $_SET_LEVEL);
setSession('ltype', "naver");
setCookie('_LEVEL', $_SET_LEVEL, time()+2678400, '/', '.'._HOST);
setCookie('_PW_NPLACE_SAVE',$m_id, time()+2678400,'/', _HOST);
echo ("
");
exit;
} else { // 회원정보를 가져오지 못했습니다.
echo ("
");
exit;
}
}
?>