【发布时间】:2012-03-06 05:48:15
【问题描述】:
我遇到了有关 Facebook Connect 插件的严重问题。 我正在尝试使用此功能让我的用户登录网站。
所以我基本上使用了php SDK混合JS SDK给出的示例。
我成功地允许我的用户登录,但我无法让他们注销。我快疯了,我不明白……这根本行不通……
稍后我将在会话 php 变量中使用 facebook 会话,因此我需要注销会话和 cookie。你能帮帮我吗
这是我的代码:
<?
//uses the PHP SDK. Download from https://github.com/facebook/php-sdk
require 'src/facebook.php';
$facebook = new Facebook(array(
'appId' => 'ddddd',
'secret' => 'ddddddddddddddd',
));
$userId = $facebook->getUser();
?>
<?php if ($userId) {
$userInfo = $facebook->api('/' + $userId);
$params = array('next' => 'http://www.nofrenchtouch.com/include/logout.php');
$logout = $facebook->getlogoutURL($params);?>
<span class="facebook-in">Bienvenue <?= $userInfo['name']?> - <a href="#" onClick="logoutUser(); return false;" class="facebook-bt"> Se déconnecter</a>
</span>
<?php } else { ?>
<div id="fb-root"></div>
<a href="#" class="facebook-bt" onClick="loginUser(); return false;">Se connecter avec Facebook</a>
<?php } ?>
<script>
window.fbAsyncInit = function() {
FB.init({
appId: '<?php echo $facebook->getAppID() ?>',
cookie: true,
xfbml: true,
oauth: true
});
FB.Event.subscribe('auth.login', function(response) {
window.location.reload();
});
FB.Event.subscribe('auth.logout', function(response) {
window.location.reload();
});
};
(function(d){
var js, id = 'facebook-jssdk'; if (d.getElementById(id)) {return;}
js = d.createElement('script'); js.id = id; js.async = true;
js.src = "//connect.facebook.net/fr_FR/all.js";
d.getElementsByTagName('head')[0].appendChild(js);
}(document));
function loginUser() {
FB.login(
function(response) {
getStatus(); //This is a call to a different function...
},
{scope:'email,publish_stream, user_birthday, friends_birthday'}
);
function logoutUser() {
FB.logout(
function(response) {
}
);
}
</script>
非常感谢您的阅读。
【问题讨论】:
-
你在哪里销毁 php 会话?
标签: javascript php facebook session sdk