Facebook-connect: невозможно выйти из системы с помощью PHP SDK + JS SDK - PullRequest
3 голосов
/ 15 февраля 2012

У меня серьезные проблемы с плагином Facebook Connect.Я пытаюсь использовать эту функцию для того, чтобы мои пользователи могли войти на веб-сайт.

Поэтому я использовал в основном пример, приведенный для микширования php SDK JS SDK.

Мне удалось разрешитьмои пользователи, чтобы войти, но я не могу заставить их выйти.Я схожу с ума, я не понимаю ... Это просто не работает ...

Позже я буду использовать сеанс facebook в переменной php сессии, поэтому мне нужно выйти из системы, уничтожая обасессия и 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>

Большое спасибо за чтение.

Ответы [ 3 ]

0 голосов
/ 15 февраля 2012

При выходе из Facebook удалите сеанс и файлы cookie пользователя.

function logoutUser() {    
    FB.logout(
        function(response) {
//Pass control to function in php where you can destroy your session and cookies.
// windows.location=PHP function
        }
    );   
0 голосов
/ 04 сентября 2018

Вы должны использовать выход из системы следующим образом:

FB.logout(function(response) {
  FB.Auth.setAuthResponse(null, 'unknown');
  ...
});

, как это относится .. Facebook JS SDK FB.logout () не завершает сеанс пользователя

0 голосов
/ 15 февраля 2012

FB.logout(); будет выход пользователя из Facebook. Выход из Facebook, по сути, завершает сеанс с вашим сервером, но я думаю, что это не то, чего вы пытаетесь достичь. Тем не менее, я обнаружил, что следующий код работает для выхода из Facebook:

<a href="javascript:FB.logout();void(0)">Log Out</a>

Когда пользователь предоставляет привилегии вашего приложения своей учетной записи, JS SDK будет автоматически передавать информацию о сеансе о пользователе на сервер при каждой загрузке страницы. Чтобы позволить вашему пользователю выйти из системы, вы должны создать собственную систему аутентификации, которая может входить и выходить из системы по желанию. Он будет использовать свои собственные сеансовые хэши и тому подобное, которые отделены от тех, которые создает JS SDK. Используйте Facebook PHP SDK только для того, чтобы получить информацию о вашем пользователе и сохранить ее в своей базе данных. Это позволит пользователю выйти из вашего веб-сайта (даже если Facebook JS SDK на самом деле все еще подключен). Я могу предоставить больше информации о системах учетных записей пользователей, если вам нужно.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...