PHP中的Facebook登录重定向uri问题

PHP中的Facebook登录重定向uri问题,php,facebook,facebook-graph-api,redirect,url-redirection,Php,Facebook,Facebook Graph Api,Redirect,Url Redirection,f_config.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://e

f_config.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();
?>
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帐户登录时,它会对该应用程序进行不成功的授权,然后使用code=
重定向回login.php,然后再次需要单击facebook登录按钮重定向到index.php


下面是一个例子:

我试图调试,似乎是域(包括www)的url重定向问题。 这是典型的在有和没有www.的url之间重定向,并导致会话不再匹配域名的变化

解决方案: 在课程开始前,我加入了以下几行

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]

我试着调试,它似乎是包括www在内的域的url重定向问题。 这是典型的在有和没有www.的url之间重定向,并导致会话不再匹配域名的变化

解决方案: 在课程开始前,我加入了以下几行

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]