CI 묻고 답하기

제목 페이스북 로그인 질문 드립니다.
글쓴이 반벽이 작성시각 2015/10/12 15:39:34
댓글 : 4 추천 : 0 스크랩 : 0 조회수 : 16206   RSS
코드이그나이터 및 php 초보사용자입니다.

페이스북 로그인 api를 사용하고 싶은데, 

코드이그나이터로 작성 된 샘플같은 자료를 좀 구할 수 없을까요?

페이스북 Developer에서 App 생성까지는 했는데.. 예제를 봐도 코드이그나이터에 어떻게

적용을 해야 할지 감이 잡히질 않네요..ㅜㅜ;

자세한 설명이나 참고할 만한 URL 링크 부탁드리겠습니다~

살려주세요..ㅜㅜ
 다음글 SPA를 해주는 CI프레임워크가 있나요? (4)
 이전글 긴급) 도움 요청합니다. 한글,영문 언어팩 작업 질문 (5)

댓글

kaido / 2015/10/12 16:44:09 / 추천 0
content.php 에 상수 선언

define('FACEBOOK_CODE', "FB");
define('FB_CLIENT_ID', "아이디");
define('FB_CLIENT_SECRET', "키값");
define('FACEBOOK_REDIRECT_URI', "http://도메인/auth/callback?type=".FACEBOOK_CODE);


//----
컨트롤러

function sns_login() {
  $type=$this->input->get("type", TRUE);
  
     $mt = microtime();
     $rand = mt_rand();
     $state=md5($mt . $rand);
     
     $this->session->set_userdata('state', $state);

if($type==FACEBOOK_CODE) {
   $url="https://www.facebook.com/dialog/oauth?client_id=".FB_CLIENT_ID."&redirect_uri=".urlencode(FACEBOOK_REDIRECT_URI)."&scope=email,publish_actions";
   redirect($url);
  }



function callback($location) {
  $type=$this->input->get("type", TRUE);
  $access_token=$this->input->get("access_token", TRUE);
  $code=$this->input->get("code", TRUE);
  $state=$this->input->get("state", TRUE);
  $orig_state=$this->session->userdata("state");
  $oauth_token=$this->input->get("oauth_token", TRUE);
  
if($type==FACEBOOK_CODE) {
   $url="https://graph.facebook.com/v2.3/oauth/access_token?client_id=".FB_CLIENT_ID."&redirect_uri=".urlencode(FACEBOOK_REDIRECT_URI)."&client_secret=".FB_CLIENT_SECRET."&code=".$code;
   $ch=curl_init();
   curl_setopt($ch, CURLOPT_URL, $url);
   curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
   curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0);
   curl_setopt($ch, CURLOPT_POST, 0);
   $result=curl_exec($ch);
   $json=json_decode($result);

   $url="https://graph.facebook.com/me?fields=email&access_token=".$json->{'access_token'};
   curl_setopt($ch, CURLOPT_URL, $url);
   curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
   curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0);
   curl_setopt($ch, CURLOPT_POST, 0);
   $result=curl_exec($ch);
   $json=json_decode($result);
   curl_close($ch);
   $email=$json->{'email'};
  }

}
}

뷰
페이스북
나머지는 알아서... ( ..)
kaido / 2015/10/12 16:45:07 / 추천 0
참고로 curl 설치 되어있으셔야 합니다.
그리고 다른 sns 쪽도 같이 쓰는 코드라서 사용하지 않는 코드가 있을수 있습니다.

구현에  CI가 헷갈리시면 최대한 네이티브 PHP 형태로 구현하고, CI로 바꿔서 구현해 보시면됩니다.
반벽이 / 2015/10/12 17:12:31 / 추천 0
감사합니다.~ 열심히 참고해서 구현해보겠습니다~
반벽이 / 2015/10/12 17:56:14 / 추천 0
오.. 된다.. ㅎㅎ;