在Facebook Api维持会话

时间:2013-05-07 08:43:09

标签: facebook api cookies login

我正在使用Facebook PHP SDK登录和注册。 代码是这样的:

require_once( '的Facebook / facebook.php');

$facebook = new Facebook(array(
    'appId'  => 'id',
    'secret' => 'secret',
    'cookie' => true,
));

$ user = $ facebook-> getUser();

if ($user) {
    try {
        $user_profile = $facebook->api('/me');
    } catch (FacebookApiException $e) {
        error_log($e);
        $user = NULL;
    }
}

if ($user) {
    $_SESSION["logout_url"] = $logoutUrl = $facebook->getLogoutUrl( array(
                   'scope' => 'offline_access, publish_stream, email',
                   )); 

    $_SESSION["userprofile"] = $user_profile;


    header("Location: $index");

}
else {
    $loginUrl = $facebook->getLoginUrl( array(
                   'scope' => 'offline_access, publish_stream, email',
                   )); 

    header("Location: $loginUrl");
}

当您登录并关闭并再次打开网页浏览器时Facebook会话丢失,所以我添加了一个这样的JS脚本:

   FB.init({
     appId  : 'id',
     status : true, 
     cookie : true, 
     xfbml  : true  
   });

哪个应该可以解决我的cookie问题。但是现在,如果您第二次登录脚本,则会创建无限循环的重定向,并且无法加载网站。 在此之后,我需要重新安装app_secret_id并删除JS代码以便能够再次登录。

0 个答案:

没有答案