facebook 소셜 로그인시 토큰 에러 질문

facebook 소셜 로그인시 토큰 에러 질문

QA

facebook 소셜 로그인시 토큰 에러 질문

본문

아직 웹 개발 초보자라 부족한 점이 많습니다 ㅠㅠ

***********************************************

페이스북 소셜 로그인 기능 로그인까지는 되는데 그 다음이 안됩니다.

'토큰 정보가 올바르지 않습니다' 라고 뜨는데요

 

plugin/oauth/facebook/callback.php 파일에서 찾아보니 

굵은 빨간 줄만 보시면 됩겁니다.

 

$oauth = new FACEBOOK_OAUTH(G5_FACEBOOK_CLIENT_ID, G5_FACEBOOK_SECRET_KEY); 

 

if($oauth->check_valid_state_token($_GET['state'])) {

    if($oauth->get_access_token($_GET['code'])) {

        if($oauth->check_valid_access_token()) {

            $oauth->get_profile();

 

            //var_dump($oauth->profile); exit;

 

            if($oauth->profile->id) {

                $email = $oauth->profile->email;

                $info  = get_oauth_member_info($oauth->profile->id, $oauth->profile->name, 'facebook');

 

                if($info['id']) {

                    unset($member);

 

                    $member = array(

                                'mb_id'       => $info['id'],

                                'mb_password' => $info['pass'],

                                'mb_email'    => $email,

                                'mb_nick'     => $info['nick'],

                                'mb_name'     => $oauth->profile->name,

                                'mb_level'    => 2,

                                'mb_point'    => 0

                            );

 

                    set_session('ss_oauth_member_no',                               'fcb_'.$oauth->profile->id);

                    set_session('ss_oauth_member_fcb_'.$oauth->profile->id.'_info', $member);

                }

            } else {

                alert_close('서비스 장애 또는 정보가 올바르지 않습니다.');

            }

        } else {

            alert_close('토큰 정보가 올바르지 않습니다.');

        }

    }

 

 

토큰 정보 에러가 뜨면

G5_FACEBOOK_CLIENT_ID, G5_FACEBOOK_SECRET_KEY 의 값이 유효하지 않아서인가요? 

혹인 값이 달라서인가요?

그리고 $_GET['code']는 어디서 얻어오는 건가요?

이 질문에 댓글 쓰기 :

답변 1

알반적으로 인증과정이

client_id와 client_secret와 자체 state키를 생성해 인증페이지로 보내면

콜백url로 state와 code값을 주소창에 달고 즉 쿼리스트링 형태로 보냅니다.

그러면 $_GET['state']로 검증을 하고 $_GET['code']로 나머지 인증 작업을 끝내면

최종 access_token값을 얻게 됩니다.

 

제가 볼 때 정확한 사정은 모르겠지만 

먼저 client_id와 client_secret값이 정확한 것인지 확인해 보시고

콜백페이지 주소창에 code값이 제대로 넘어 왔는 지 확인해 보시죠.

답변을 작성하시기 전에 로그인 해주세요.
전체 129,672 | RSS
QA 내용 검색

회원로그인

(주)에스아이알소프트 / 대표:홍석명 / (06211) 서울특별시 강남구 역삼동 707-34 한신인터밸리24 서관 1402호 / E-Mail: admin@sir.kr
사업자등록번호: 217-81-36347 / 통신판매업신고번호:2014-서울강남-02098호 / 개인정보보호책임자:김민섭(minsup@sir.kr)
© SIRSOFT