2017-04-18 6 views
1

코드 서명자 3의 Facebook Auth에 문제가 있습니다.페이스 북 로그인을 누를 때마다 페이스 북으로 리디렉션되어 권한을 요청하고 den은 링크에 코드를 반환하고 내 프로파일 페이지로 리디렉션하지 않습니다. 다음은 아래 Facebook 인증 로그인 문제

<?php defined('BASEPATH') OR exit('No direct script access allowed'); 
class User_Authentication extends CI_Controller 
{ 
    function __construct() { 
     parent::__construct(); 

     // Load facebook library 
     $this->load->library('facebook'); 

     //Load user model 
     //$this->load->model('user'); 
    } 

    public function index(){ 
     $userData = array(); 

     // Check if user is logged in 
     if($this->facebook->is_authenticated()){ 
      // Get user facebook profile details 
      $userProfile = $this->facebook->request('get', '/me?fields=id,first_name,last_name,email,gender,locale,picture'); 

      // Preparing data for database insertion 
      $userData['oauth_provider'] = 'facebook'; 
      $userData['oauth_uid'] = $userProfile['id']; 
      $userData['first_name'] = $userProfile['first_name']; 
      $userData['last_name'] = $userProfile['last_name']; 
      $userData['email'] = $userProfile['email']; 
      $userData['gender'] = $userProfile['gender']; 
      $userData['locale'] = $userProfile['locale']; 
      $userData['profile_url'] = 'https://www.facebook.com/'.$userProfile['id']; 
      $userData['picture_url'] = $userProfile['picture']['data']['url']; 

      // Insert or update user data 
      $userID = $this->user->checkUser($userData); 

      // Check user data insert or update status 
      if(!empty($userID)){ 
       $data['userData'] = $userData; 
       $this->session->set_userdata('userData',$userData); 
      } else { 
       $data['userData'] = array(); 
      } 

      // Get logout URL 
      $data['logoutUrl'] = $this->facebook->logout_url(); 
     }else{ 
      $fbuser = ''; 

      // Get login URL 
      $data['authUrl'] = $this->facebook->login_url(); 
     } 

     // Load login & profile view 
     $this->load->view('user_authentication/index',$data); 
    } 

    public function logout() { 
     // Remove local Facebook session 
     $this->facebook->destroy_session(); 
     // Remove user data from session 
     $this->session->unset_userdata('userData'); 
     // Redirect to login page 
     redirect('/user_authentication'); 
    } 
} 

가 config.php를 내 페이스 북 파일 내 컨트롤러

<?php 
defined('BASEPATH') OR exit('No direct script access allowed'); 

/* 
| ------------------------------------------------------------------- 
| Facebook App details 
| ------------------------------------------------------------------- 
| 
| To get an facebook app details you have to be a registered developer 
| at http://developer.facebook.com and create an app for your project. 
| 
| facebook_app_id    string Your facebook app ID. 
| facebook_app_secret   string Your facebook app secret. 
| facebook_login_type   string Set login type. (web, js, canvas) 
| facebook_login_redirect_url string URL tor redirect back to after login. Do not include domain. 
| facebook_logout_redirect_url string URL tor redirect back to after login. Do not include domain. 
| facebook_permissions   array The permissions you need. 
| facebook_graph_version  string Set Facebook Graph version to be used. Eg v2.6 
| facebook_auth_on_load   boolean Set to TRUE to have the library to check for valid access token on every page load. 
*/ 

$config['facebook_app_id']    = '******'; 
$config['facebook_app_secret']   = '*****'; 
$config['facebook_login_type']   = 'web'; 
$config['facebook_login_redirect_url'] = 'user_authentication'; 
$config['facebook_logout_redirect_url'] = 'user_authentication/logout'; 
$config['facebook_permissions']   = array('email'); 
$config['facebook_graph_version']  = 'v2.6'; 
$config['facebook_auth_on_load']  = TRUE; 

내보기 파일

<!DOCTYPE HTML> 
<html lang="en"> 
<head> 
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 
<title>Login with Facebook in CodeIgniter by CodexWorld</title> 
<style type="text/css"> 
h1{ 
    font-family:Arial, Helvetica, sans-serif; 
    color:#999999; 
} 
.wrapper{width:600px; margin-left:auto;margin-right:auto;} 
.welcome_txt{ 
    margin: 20px; 
    background-color: #EBEBEB; 
    padding: 10px; 
    border: #D6D6D6 solid 1px; 
    -moz-border-radius:5px; 
    -webkit-border-radius:5px; 
    border-radius:5px; 
} 
.fb_box{ 
    margin: 20px; 
    background-color: #FFF0DD; 
    padding: 10px; 
    border: #F7CFCF solid 1px; 
    -moz-border-radius:5px; 
    -webkit-border-radius:5px; 
    border-radius:5px; 
} 
.fb_box .image{ text-align:center;} 
</style> 
</head> 
<body> 
<?php 
if(!empty($authUrl)) { 

    echo '<a href="'.$authUrl.'"><img src="'.base_url().'assets/images/flogin.png" alt=""/></a>'; 
}else{ 
?> 
<div class="wrapper"> 
    <h1>Facebook Profile Details </h1> 
    <div class="welcome_txt">Welcome <b><?php echo $userData['first_name']; ?></b></div> 
    <div class="fb_box"> 
     <p class="image"><img src="<?php echo $userData['picture_url']; ?>" alt="" width="300" height="220"/></p> 
     <p><b>Facebook ID : </b><?php echo $userData['oauth_uid']; ?></p> 
     <p><b>Name : </b><?php echo $userData['first_name'].' '.$userData['last_name']; ?></p> 
     <p><b>Email : </b><?php echo $userData['email']; ?></p> 
     <p><b>Gender : </b><?php echo $userData['gender']; ?></p> 
     <p><b>Locale : </b><?php echo $userData['locale']; ?></p> 
     <p><b>You are login with : </b>Facebook</p> 
     <p><a href="<?php echo $userData['profile_url']; ?>" target="_blank">Click to Visit Facebook Page</a></p> 
     <p><b>Logout from <a href="<?php echo $logoutUrl; ?>">Facebook</a></b></p> 
    </div> 
</div> 
<?php } ?> 
</body> 
</html> 

이 권한과 던져 요청 로그인을 내가 페이스 북에 대한 누를 때마다 다시 링크 모음에 코드가있는 동일한 페이지에 있습니다. 로그인

http://localhost/bird_eye_api/user_authentication 

콜백 URL에 문제

http://localhost/bird_eye_api/user_authentication?code=AQBWssEFr4IVgC9gMBX3QUR_v7bSWU2F2Lj59-u89tRdSJTuinJNN3f9EC35F1yR8uWMeMq4JvQRlDk982sddLz5jJymqhh537WlyGYNv8mHnpIW3qhggSKwm3AEGiujf9jtD54FJGzM5OzAY-QF1GTnmHa3EiO_ZsF-iQKqlLYv3NfCd30U2004Dbw6OsYLFPLsuRFpgEkA3J2XTxPpWHPVhX2TDGEFU72qXqTcuaYWCrrOFvZBCbwVziXL9Run13W8ZBZ84rOjJKar-Pwh9v4pztJ0OG3SYLsK3OiTZoMGjQ8Gcb_dohJ0d5b5383lUdk&state=663d1106ff10826c01b08c4f1d1933d8#_=_ 

로그인

후 전?

+0

페이스 북의 응용 프로그램 설정에 콜백 URL을 추가하려고 시도 했습니까? –

+0

아니요! 나는 어떻게 해야할지 말해 줄까? –

답변

1

그냥 당신이 반환 할 페이지의 URL에 config.php 파일에

$config['facebook_login_redirect_url'] 

을 변경합니다. 예를 들어

:

$config['facebook_login_redirect_url'] = 'profile'; 

이 페이지에 페이스 북의 코드를 처리하는 것을 잊지 마십시오. 그것은 같을거야 http://yoursite.com/bird_eye_api/profile?code=AABCCDDEEFF

+0

코드를 가져올 수 없습니다! 이 요청을 처리하기 위해, cn u는 저에게 그것을 제공합니다>? –