【问题标题】:Logging out of JS SDK doesn't log out of PHP SDK退出 JS SDK 不会退出 PHP SDK
【发布时间】:2011-12-04 19:05:14
【问题描述】:

我有一个同时使用 PHP SDK 和 JS SDK 的网站。

在两者都更新到 OAuth 之后,我注意到退出 JS 并没有真正让用户退出 PHP。

似乎一般的解决方案是调用“/me”,然后,如果出现错误,则假定用户已注销。但是,我不需要在每次渲染页面时都调用 /me,我只想知道用户是否已登录,而不会在每次渲染时都调用 FB API 来影响性能。

有没有办法让 PHP SDK 获知通过 JS SDK 发生的注销?

我尝试过的一些事情:

  • 注释掉Facebook.php中setPersistentData的内容
  • 手动删除 fbsr_::appid:: cookie

谢谢!

【问题讨论】:

标签: php javascript facebook logout


【解决方案1】:

从 facebook 库中获取用户访问令牌

$access_token = $this->facebook->getAccessToken();

然后在注销功能中使用这段代码

if ($this->facebook_user)
        { 


        $logoutUrl = $this->facebook->getLogoutUrl()."&access_token=".$access_token; 


        redirect($logoutUrl);   
        }

并对 facebook 库文件进行一些更改。

 public function getLogoutUrl($params=array()) {
    return $this->getUrl(
      'www',
      'logout.php',
      array_merge(array(
        'next' => $this->getCurrentUrl(),

      ), $params)
    );
  }

【讨论】:

    【解决方案2】:
    setcookie(session_name(), '', time()-42000, '/'); 
    unset($_SESSION);
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-09-21
      相关资源
      最近更新 更多