facebook oauth与http referer的问题

时间:2011-05-19 15:16:20

标签: php facebook api http oauth

我今天收到一封电子邮件说:

  

在我们检查的每一个案例中,   这些信息是通过   用户的HTTP Referer Header   浏览器。使用时会发生这种情况   我们的遗留认证系统和   包括,或   来自页面中第三方的内容   从中接收身份验证数据   Facebook的。我们的传统机制通过   URL中的身份验证信息   查询字符串,如果处理   不正确,可以传递给第3   浏览器派对。我们目前   OAuth 2.0身份验证系统,   一年前发布,通过这个   URL片段中的信息,即   不被传递给第三方   浏览器。

我有点困惑,因为我集成的方式是使用PHP API,使用类似于example.php文件的响应:

https://github.com/facebook/php-sdk

以下是我提出请求的方式:

$facebook = new Facebook(array(
    'appId'  => FACEBOOKAPPID,
    'secret' => FACEBOOKSECRET,
    'cookie' => false,
));
$fb_session = $facebook->getSession();
$fb_me = null;
// Session based API call.
if ($fb_session) {
    try {
        $fb_uid = $facebook->getUser();
        $fb_me = $facebook->api('/me');
        $fb_me['photo'] = 'http://graph.facebook.com/'.$fb_uid.'/picture?type=large';
        $_SESSION['register_api'] = 1;
        $_SESSION['register_api_details'] = $fb_me;
        $_SESSION['register_api_user_id'] = $fb_uid;
        header_redirect(SITEURL.'/register');
    } catch (FacebookApiException $e) {
        error_log($e);
    }
}
else{
    # LOGIN URL FOR FACE BOOK & request extra stuff
    $fb_login_url = $facebook->getLoginUrl(array('req_perms'=>'email,user_about_me,user_birthday,user_website'));
    header_redirect($fb_login_url);
}

一切都很好,但我不明白我做错了什么。据我所知,我正在使用oauth。

请帮忙!我需要在下周发布这个。

谢谢!

1 个答案:

答案 0 :(得分:0)

事实证明,他们即将发布解决此问题的新版API。