我正在尝试在用户登录时从我的网站上注销用户。
我正在使用" 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;]中?
答案 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)