Php 如何阻止facebook sdk返回$facebook中的uid->;getUser()

Php 如何阻止facebook sdk返回$facebook中的uid->;getUser(),php,facebook,facebook-graph-api,authentication,Php,Facebook,Facebook Graph Api,Authentication,所以我正试图为我的网站设计Facebook注销功能 问题是,使用facebook注销按钮,用户将从facebook网站而不是我的网站注销 因此,我当前的逻辑是,当单击注销按钮时,它会调用我的应用程序的注销功能,并清除会话等 但是我还有其他地方的逻辑,如果$facebook->getUser()正确返回uid,从数据库中获取用户信息并将其设置为已登录 有没有办法阻止$facebook->getUser()返回正确的用户id 即当用户单击注销时,他不应该从实际的facebook网站注销,但$face

所以我正试图为我的网站设计Facebook注销功能

问题是,使用facebook注销按钮,用户将从facebook网站而不是我的网站注销

因此,我当前的逻辑是,当单击注销按钮时,它会调用我的应用程序的注销功能,并清除会话等

但是我还有其他地方的逻辑,如果$facebook->getUser()正确返回uid,从数据库中获取用户信息并将其设置为已登录

有没有办法阻止$facebook->getUser()返回正确的用户id


即当用户单击注销时,他不应该从实际的facebook网站注销,但$facebook->getUser()也不应该返回正确的id,这样他就不会再次自动重新登录

facebook如何知道用户在您的网站上注销在本地数据库中放置一个标志,指示用户已注销。在$facebook->getUser()之后检查它。

使用facebook SDK时要记住的一点是,当您进行身份验证时,您实际上是单独登录到facebook和您的网站-您需要满足这一逻辑

登录到Facebook后,将创建身份验证cookie(而不是会话)。您可能正在使用会话进行站点身份验证,但Facebook正在使用cookie

您需要调用$facebook->destroySession()如果不希望在后续调用中返回UID

看看我的CodeIgniter代码,*index.php/authenticate/kill_session*方法调用上述destroySession();方法以及清除我的应用程序会话-这将使我完全退出Facebook和我的应用程序:

<?php
class Facebook_model extends CI_Model 
{ 
public function __construct()
{
    parent::__construct();

    $this->config->load('facebook');

    $config = array(
       'appId'      => $this->config->item('facebook_api_key'),
       'secret'     => $this->config->item('facebook_secret_key'),
       'fileUpload' => false,
    );

    $this->load->library('Facebook', $config);
}

public function connect()
{
    $user = $this->facebook->getUser();

    $profile = null;

    if($user)
    {
        try {
          $profile = $this->facebook->api('/me');
        } catch (FacebookApiException $e) {
            error_log($e);
            $user = null;
        }
    }

    $fb_data = array(
       'me'        => $profile,
       'gender'    => $profile['gender'],
       'uid'       => $user,
       'loginUrl'  => $this->facebook->getLoginUrl(array('scope' => 'email,user_birthday')),
       'logoutUrl' => $this->facebook->getLogoutUrl(array('next' => base_url('index.php/authenticate/kill_session'))),
    );

    return $fb_data;
}

public function disconnect()
{
    $this->facebook->destroySession();
}

 } // EOC