我有一个(目前非常简单的)网站,该网站正在使用 Facebook 的“带有 Facebook 登录的网站”应用程序设置。我的问题表面上看起来很简单,但我无法解决,有人可以解释一下吗?
我的网站主页是(比如说)https://www.mysite.net/ - 当我使用下面的代码从这里登录时,它可以工作。
if(!$this->facebook->getUser())
{
//NOT LOGGED IN
$params = array(
'scope' => 'email, publish_stream, user_photos, status_update',
'redirect_uri' => current_url(),
);
$auth_url = $this->facebook->getLoginUrl($params);
$auth_text = "Log In";
}
else
{
//LOGGED IN
$fbid = $this->facebook->getUser();
$fbid = $fbid;
$auth_url = "https://www.facebook.com/logout.php?confirm=1&next=".urlencode(base_url().'logout/')."&access_token=".$this->facebook->getAccessToken();
$auth_text = "Log Out";
}
<a href="<?=$auth_url;?>" class="btn btn-primary"><i class="icon-user"></i> <?=$auth_text;?></a>
..效果很好。
但是,当我使用来自https://www.mysite.net/second_page/的相同代码(并且用户需要登录)并且我在第二页上也使用上述代码时,登录脚本重定向到Facebook Auth Dialog(很棒),并重定向到 redirect_uri(也很棒),但用户没有登录到页面 - 即,它给出了“登录”对话框而不是预期的“注销”对话框。
我在这里做错了吗?我希望 facebook 登录对话框可以从我的应用程序指定站点根目录的任何页面上工作。我不想每次登录都将我的用户重定向到主页,他们需要能够从站点的任何页面登录。
想法?
问候, 保罗 G