2016-10-20 3 views
1

f_config.phpFacebook Войти перенаправлять Uri вопрос в PHP

<?php 
include_once("f_src/facebook.php"); //include facebook SDK 
######### Facebook API Configuration ########## 
$appId = '<appid>'; //Facebook App ID 
$appSecret = '<appsecret>'; // Facebook App Secret 
$homeurl = 'http://example.com/login_beta.php'; //return to home 
$fbPermissions = 'email'; //Required facebook permissions 

//Call Facebook API 
$facebook = new Facebook(array(
    'appId' => $appId, 
    'secret' => $appSecret 

)); 
$fbuser = $facebook->getUser(); 
?> 

login.php

include_once("f_config.php"); 

if(!$fbuser){ 
    $fbuser = null; 
    $loginUrl = $facebook->getLoginUrl(array('redirect_uri'=>$homeurl,'scope'=>$fbPermissions)); 
}else{ 
    $user_profile = $facebook->api('/me?fields=id,first_name,last_name,email,gender,locale,picture'); 
    $_SESSION['facebook_data'] = $user_profile; // Storing Facebook User Data in Session 
    //var_dump("Asd"); 
    header("location: index.php"); 
} 
//.. 
//.. 

    <?php 
      if(!$fbuser){ 
      $fbuser = null; 
      $loginUrl = $facebook->getLoginUrl(array('redirect_uri'=>$homeurl,'scope'=>$fbPermissions)); 
echo '<a class="btn btn-sm btn-info" href="'.$loginUrl.'"><i class="icon icon-facebook icon-2x"> </i><span style="font-size: 16px; padding: 0 16px;">Continue With Facebook</span></a>'; 


} 

?> 

Когда я пытаюсь Войти с Facebook с аккаунтом разработчики санкционирует приложение отлично и земли в index.php Однако, когда я пытаюсь войти в систему с какой-либо другой учетной записью facebook, она автоматически разрешает приложение, а затем перенаправляет обратно в login.php с кодом = <somerandomvalue>, а затем снова нужно нажать кнопку входа в facebook, чтобы перенаправить на index.php.

Я выполняю этот пример: http://www.codexworld.com/login-with-facebook-using-php/

ответ

0

Я пытался отладки и, кажется, его URL-адрес вопрос переназначения с доменом, включая WWW. Это типично для перенаправления между URL-адресами, которые имеют и не имеют www. на них и заставляет сеанс больше не соответствовать изменению имени домена.

Решение: я включил следующие строки перед началом сессии

ini_set('session.cookie_domain', '.example.com'); 
session_set_cookie_params(0, '/', '.example.com'); 

и в файле .htaccess добавляется ниже строк, удаляющий вид WWW URL.

RewriteEngine On 
RewriteCond %{HTTP_HOST} ^www.example.com$ [NC] 
RewriteRule ^(.*)$ http://example.com/$1 [R=301,L]