Facebook登录php如何从应用程序本身注销

时间:2017-03-14 20:35:38

标签: php html facebook facebook-login

我正在尝试在用户登录时从我的网站上注销用户。

我正在使用" Facebook登录php sdk v5"。

我使用fb-callback登录:

<?php
session_start();
# login-callback.php
require_once 'facebook-sdk-v5/autoload.php';
$fb = new Facebook\Facebook([
  'app_id' => 'XXXXXXXXXXXXX',
  'app_secret' => 'XXXXXXXXXXXXXX',
  'default_graph_version' => 'v2.5',
]);

$helper = $fb->getRedirectLoginHelper();
try {
  $accessToken = $helper->getAccessToken();
} catch(Facebook\Exceptions\FacebookResponseException $e) {
  // When Graph returns an error
  echo 'Graph returned an error: ' . $e->getMessage();
  exit;
} catch(Facebook\Exceptions\FacebookSDKException $e) {
  // When validation fails or other local issues
  echo 'Facebook SDK returned an error: ' . $e->getMessage();
  exit;
}

if (isset($accessToken)) {
  // Logged in!
  $_SESSION['facebook_access_token'] = (string) $accessToken;
  header('Location: index.php');

  // Now you can redirect to another page and use the
  // access token from $_SESSION['facebook_access_token']
}
?>

所以我想检查一下是否有人登录我只是检查是否设置了$ _SESSION [&#39; facebook_access_token&#39;]但是要将它们记录下来我手动操作&#34;将null放在$ _SESSION [&#39; facebook_access_token&#39;]中?

2 个答案:

答案 0 :(得分:0)

如果您粘贴用户的登录方式,那将会很有帮助。我假设你使用facebook(FB)的默认示例代码来登录他们的php sdk。它可以向RESTful api发送请求(从您的服务器到Facebook图形api),因此实际上没有会话(RESTful方法),所有内容都通过access_token进行管理。当用户通过FB登录到您的站点时,它会向您的回调URL传递一个包含access_token字段的响应,然后您只能使用该access_token一次,通常是为了获取FB用户的个人资料,然后您验证该信息在您的服务器中登录您的用户。为什么这么解释?因为你应该了解这个过程是如何运作的。

对此的简短回答是,您手动处理注销(例如Session :: destroy()),您不需要FB php sdk进行注销

答案 1 :(得分:0)

记录人员

您可以通过撤消添加的任何登录状态指示器来记录您的应用程序,例如删除指示某个人已登录的会话。您还应该删除存储的访问令牌。

将某人记录下来与撤消登录权限(删除以前授予的身份验证)不同,这可以单独执行。因此,请构建您的应用程序,以便它不会自动强制已退出登录对话框的人。

(感谢FACEBOOK DOCS)

相关问题