facebook php登录FBRLH_state会话变量值从facebook回来后发生了变化

时间:2016-03-29 04:23:08

标签: php session facebook-graph-api facebook-php-sdk

我正在尝试使用php sdk在我的网络应用程序中实现facebook登录,但它不起作用。出于某种原因,似乎$ _SESSION [" FBRLH_state"]的值在用户从Facebook页面返回以获取应用访问用户信息的权限后被修改。

以下是我正在使用的代码:

facebookloginbutton.php

<?php

session_start();    
require_once 'facebook/facebook-php-sdk-v4-5.0.0/src/Facebook/autoload.php';

$fb = new Facebook\Facebook([
  'app_id' => '*****',
  'app_secret' => '*****',
  'default_graph_version' => 'v2.5',
]);

$helper=$fb->getRedirectLoginHelper();

$permissions=['public_profile']; // Optional permissions
$loginUrl=$helper->getLoginUrl('mydomain.com/snslogin/fb-callback', $permissions);

//output the FBRLH_state here (name this state1)
echo $_SESSION["FBRLH_state"];

?>
<a href="<?php echo htmlspecialchars($loginUrl); ?>">facebook login</a>

fb-callback.php(仅限其顶部)

<?php

session_start();    
require_once 'facebook/facebook-php-sdk-v4-5.0.0/src/Facebook/autoload.php';

//output $_SESSION["FBRLH_state"] (name this state2)
var_dump($_SESSION);

//output the state variable in the URL (name this state3)
echo '<br>'.$_GET["state"].'<br>';

在上面的代码中,我得到了state1和state3的相同值,但是状态2由于某种原因不同。由于这些值不同,程序不会继续使用fb-callback.php的其余代码。

我已经在另一个网络应用程序中使用facebook帐户进行了php登录,所以我想我知道自己在做什么,但我找不到我正在犯的错误。

0 个答案:

没有答案
相关问题