【问题标题】:FaceBook Connect API : Session still alive after Logging Out on FBFaceBook Connect API:在 FB 上注销后会话仍然存在
【发布时间】:2011-09-17 13:35:41
【问题描述】:

我发现了几个类似的问题,但都讨论了用户是否通过连接注销。我在问一个不同的问题:

我有一个应用程序,用户已经在 Facebook 登录并且已经添加了这个应用程序。因此,在应用程序主页上,它显示“欢迎用户名”,因为用户会话已经存在。

接下来,我从 FaceBook.com(不是我的应用程序)注销,打开 facebook.com,然后从右侧菜单中单击 Logged Out !并看到一条消息,我已注销。

我再次打开我的应用程序,进行了几次刷新,但仍然显示“欢迎用户名”。它应该说“登录 Facebook”而不是欢迎信息,因为我已经在 Facebook 上注销了。

以下是我用来获取 FB 会话的内容。

    $session = $facebook->getSession();

    if(!empty($session)) {
    # Active session, let's try getting the user id (getUser()) and user info (api->('/me'))
    try{
        $uid = $facebook->getUser();
        $user = $facebook->api('/me');
    } catch (Exception $e){}

    if(!empty($user)){
        # User info ok? Let's print it (Here we will be adding the login and registering routines)
        print_r($user);
    } else {
        # For testing purposes, if there was an error, let's kill the script
        die("There was an error.");
    }
} 

请指导我如何解决这个问题。

【问题讨论】:

  • 但是这样会过期所有的cookie,有没有办法针对特定的cookie来解决这个问题?

标签: facebook connect


【解决方案1】:

您的浏览器中可能存储了一个 FB cookie.. 尝试使其过期,以便 FB 不会将其用于登录目的.. 尝试 .. $past = time() - 3600; foreach ( $_COOKIE as $key => $value ) { setcookie( $key, $value, $past, '/' ); }

【讨论】:

  • 但是这样会过期所有的cookie,有没有办法针对特定的cookie来解决这个问题?
  • 我认为 FB cookie 的生成名称为 fb_ 或 fbs_
  • 但是如何删除从其他域设置的 cookie?例如,问题是,当我从 FB 注销时,我也应该从我的应用程序中注销,但这并没有发生。现在,如果您要我删除 cookie,那么我只能删除我的应用程序域设置的 cookie。你明白了吗?
  • 这对我有用 ..setcookie('fbs_'.FACEBOOK_APP_ID, "", time()-3600, "/", );
  • 我认为,FB API 有问题,我不认为这里的人有解决问题的方法。
猜你喜欢
  • 2015-04-02
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-11-21
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-10-17
相关资源
最近更新 更多