Facebook PHP:用户退出Facebook后,他们无法与其他用户登录我的应用程序

时间:2012-04-03 20:22:25

标签: php facebook

对于令人困惑的标题感到抱歉,这是情况......

  1. 用户使用Facebook登录我的应用
  2. 用户退出Facebook ....其他人来到电脑...
  3. 第二个用户尝试访问我的应用程序(不同的Facebook帐户,同一台计算机)
  4. 他们不能......而是脚本获取前一个用户的访问令牌。
  5. 我正在使用facebook PHP SDK。

    当用户第一次尝试登录时,我会执行以下操作;

    unset($_REQUEST);
    unset($_COOKIE); //don't know if both are necessary
    session_destroy();
    

    然而,新的fb帐户仍然被认为是最后一个(我得到以前登录的用户访问令牌,当我尝试使用它时会抛出异常,因为该用户不再登录)。

    我是否需要使用注销功能?我假设将用户从Facebook中记录下来,这不是我想要的,只需在我的应用程序中使用新用户重新开始。

    有什么想法吗?因为我正在清理所有内容,所以我真的对这些数据持续存在感到茫然。希望它有点愚蠢,我很想念,但我想我会问,万一有人知道什么。

3 个答案:

答案 0 :(得分:1)

这似乎最终有效:

$fb_key = 'fbsr_'.$facebookConfig['app_id'];
setcookie($fb_key, '', time()-3600);
$facebook->destroySession();

答案 1 :(得分:0)

萨布丽娜

使用带有效用户访问令牌的注销应该可以正常工作。这是我使用“除非离线访问是永久性的”


$user = $facebook->getUser();
$access_token = $_SESSION['fb_135669679827333_access_token'];
if ($user) {
  try {
    // Proceed knowing you have a logged in user who's authenticated.
    $user_profile = $facebook->api('/me');
  } catch (FacebookApiException $e) {
    error_log($e);
    $user = null;
  }
}
if ($user) {
  $params = array (
  access_token => ''.$access_token.''
  );
  $logoutUrl = $facebook->getLogoutUrl($params);
} else {
$params = array(
  scope => 'read_stream,publish_stream,publish_actions,read_friendlists'
  //redirect_uri => $url
  );
  $loginUrl = $facebook->getLoginUrl($params);
};

答案 2 :(得分:0)

谢谢,但我不想让用户退出Facebook,只是出自我的应用。 - Sabrina Gelbart 4月4日10:40

与你的问题相矛盾,通过$ this-> facebook-> destroySession(); 将用户从facebook而不是facebook中记录下来,如果其他用户想要使用此计算机,他们应该从他们的Facebook帐户注销=新用户可以登录到您的网站。

你不希望用户的facebook从他们注销时从facebook.com注销吗?这对我来说很沮丧