使用 HTTP 引用器遇到 Facebook OAuth 问题


Getting a Facebook OAuth problem with HTTP referer

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

在我们审查过的每一个案例中,此信息通过用户的 HTTP 引用标头浏览器。使用时可能会发生这种情况我们的传统认证系统和包括 、 或页面中来自第三方的内容从以下位置接收身份验证数据脸书。我们的传统机制通过URL 中的身份验证信息查询字符串,如果已处理不正确,可以传递到第 3 个浏览器的派对。我们目前OAuth 2.0认证系统,一年多前发布,通过这个网址片段中的信息,其中未由浏览器。

我有点困惑,因为我的集成方式是使用 PHP API 使用与示例类似的响应.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。

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