这是一个非常令人沮丧的问题(错误?),我一直想弄清楚。似乎很多人抱怨同样的问题,但没有明确的解决方案或教程解决这个问题。
无论如何,我的问题是我可以让SDK将用户记录下来,但是当他们点击LogOut时。它将它们重定向到facebook.com/home.php
(即使'next'参数设置为我的网站),当我再次访问我的网站时,用户仍未注销...
以下是代码...(Facebook库通过Codeigniter配置自动加载)
public function DestroySession()
{
$this->load->helper('url');
if($this->facebook->getUser())
{
$this->facebook->destroySession();
$logout = $this->facebook->getLogoutUrl(array("next" => "http://mysite.com/"));
redirect($logout, 'location', 301);
}
}
所以我得到了这个终于工作了。您可以在下面看到新功能。由于某些原因,我不完全确定你必须采取这些步骤。
public function DestroySession()
{
$this->load->helper('url');
//Get User ID
$user = $this->facebook->getUser();
if ($user)
{
try
{
// Proceed knowing you have a logged in user who's authenticated.
$user_profile = $this->facebook->api('/me');
// print_r($user_profile);
} catch (FacebookApiException $e)
{
log_message('eror', $e);
$user = null;
}
}
// Login or logout url will be needed depending on current user state.
if ($user)
{
if( session_id() ){} else { session_start() ; }
$logoutUrl = $this->facebook->getLogoutUrl($params = array('next' => base_url()));
//echo 'Logout; '.($logoutUrl);
$this->facebook->destroySession();
redirect($logoutUrl, 'refresh');
}
}
答案 0 :(得分:1)
我使用这样的链接使用Javascript:
<a href="/logout" onclick="FB.logout();">Logout</a>
首先调用onclick函数并在facebook上执行注销,然后调用我网站的正常/注销功能。我更喜欢服务器端解决方案,它会在两个站点上记录我。
检查http://developers.facebook.com/docs/reference/javascript/FB.logout/
答案 1 :(得分:0)
有关更多背景信息,请参阅我原来的问题。
public function DestroySession()
{
$this->load->helper('url');
//Get User ID
$user = $this->facebook->getUser();
if ($user)
{
try
{
// Proceed knowing you have a logged in user who's authenticated.
$user_profile = $this->facebook->api('/me');
// print_r($user_profile);
} catch (FacebookApiException $e)
{
log_message('eror', $e);
$user = null;
}
}
// Login or logout url will be needed depending on current user state.
if ($user)
{
if( session_id() ){} else { session_start() ; }
$logoutUrl = $this->facebook->getLogoutUrl($params = array('next' => base_url()));
//echo 'Logout; '.($logoutUrl);
$this->facebook->destroySession();
redirect($logoutUrl, 'refresh');
}
}