네이버아이디로그인 오류
본문
네이버에서 아래처럼 메일이왔었는데요, 확인해보니 아래 부분은 정상이었고,
예고했던 15일에 오류가발생했어요.
뭘 어떻게 수정해야하는건지 도움을 요청드립니다ㅠ.
/public_html/board/gp/plugins/sociallogin/inc/class.naver.php 에
$nOauth = new NaverOAuth($this->api_client_id, $this->api_secret, $state); <---- 오류라고 체크되네요
function _redirect($md = 'login')
{
if ($md == 'connect') set_session('oauth_naver_md', 'connect');
else set_session('oauth_naver_md', false);
$nOauth = new NaverOAuth($this->api_client_id, $this->api_secret, $this->_get_callback_url($md));
$nOauth-> set_state();
goto_url($nOauth-> get_request_url());
}
function callback()
{
$md = get_session('oauth_naver_md');
$nOauth = new NaverOAuth($this->api_client_id, $this->api_secret, $state);
$nOauth-> call_accesstoken();
$user = $nOauth-> get_user_profile();
if(!$user['id']) {
alert('소셜로그인: 로그인 실패', $this->getRedirectUrl());
return;
}
---------------------------------------------
애플리케이션에서 이용중인 네아로 OpenAPI에서
HTTP 스펙에 맞지 않는 요청이 감지되어 서비스 점검을 요청드립니다.
네아로 OpenAPI 를 호출하는 과정에서, HTTP 헤더의 전송 방식이 HTTP 규격에 맞지 않게
헤더명과 구분자(colon) 사이에 공백(Space)을 포함하고 있습니다.
네이버 로그인 기반 OpenAPI(프로필 정보조회, 블로그, 카페, 캘린더 API) 호출 시
HTTP 요청 헤더에 "Authorization" 헤더를 설정하여 전달하도록 되어있는데,
헤더명(Authorization)과 구분자(:) 사이에 공백이 포함되어 전달되는 경우가 있습니다.
이 경우 정상적으로 API 수행이 불가하니 다음과 같이 수정해 주세요.
잘못 ) $header = "Authorization : Bearer accesstoken...";
정상 ) $header = "Authorization: Bearer accesstoken...";
답변 1
/public_html/board/gp/plugins/sociallogin/lib/naver/naver.php 66번째 줄 공백을 삭제하세요.
// 'Authorization : '.$data['token_type'].' '.$data['access_token']
'Authorization: '.$data['token_type'].' '.$data['access_token']