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