Facebook登录身份验证问题

时间:2013-01-25 16:55:47

标签: facebook facebook-graph-api redirect

我遵循Login for server-side apps的示例,但出于某种原因,$_REQUEST['code']始终为空。所以我最后在一个无限循环的重定向中找到了我已经同意的对话框/ oauth,因此无限循环。任何人都知道问题可能是什么?

如果我回显$_REQUEST数组,我就有了“signed_request”和“PHPSESSID”。提前谢谢。

$code = $_REQUEST['code'];
if (empty($code))
{
    // Create the CSRF protection
    $_SESSION['state'] = md5(uniqid(rand(), true));

    // Set the permissions to request for
    // additionally from the standard user information
    // refer to documentation on other permissions
    //$request_permissions = "email,user_birthday";

    $dialog_url = "https://www.facebook.com/dialog/oauth?client_id=" . $options['appId'] . "&redirect_uri=" . $redirect_uri . "&state=" . $_SESSION['state'];
    echo "<script>top.location.href='" . $dialog_url . "'</script>";
}

编辑:还只是一个注释:$ code填充在网址中,只是保持清爽...我看到很多人抱怨这个但是它已经超过一年了,因为我我们已经尝试了所有的步骤以及查看SDK,看看那里有什么可以帮助我,到目前为止似乎没有做类似的...

1 个答案:

答案 0 :(得分:0)

我注意到的第一件事:生成$dialog_url的变量格式不正确。

试试这个:

$dialog_url = 'https://www.facebook.com/dialog/oauth?client_id=' . $options['appId'] . '&redirect_uri=' . urlencode($redirect_uri) . '&state=' . $_SESSION['state'] . '&scope=' . $request_permissions;

这更像是Facebook Login for Server-side Apps页面说的......