2015-09-28 4 views
3

Я использую https://github.com/pocesar/facebook-kohana для входа в facebook. У меня проблема с выходом в facebook. Это не разрушает сеанс facebook. Я пробовал так много вещей, и я прочитал много вопросов. Я попробовал это в мой метод выхода из системы, но никакого результата: $this->redirect('https://www.facebook.com/logout.php? next=mysite.dev &access_token=USER_ACCESS_TOKEN');Как выйти из facebook на моем сайте

Мой метод выхода из системы есть:

public function action_logout(){ 
 
     $facebook = new Facebook(array(
 
      'appId' => 'appId', 
 
      'secret' => 'mySecret', 
 
     )); 
 
     $user = $facebook->getUser(); 
 

 
     $facebook->destroySession(); 
 
     Session::instance()->delete('user'); 
 
     
 
     $this->redirect('/'); 
 
    }

Как уничтожить сессию, так что пользователь может войти мой сайт с другая учетная запись facebook? Благодаря!

Мой метод Войти является:

public function action_fbLogin(){ 
 
     
 
     $facebook = new Facebook(array(
 
      'appId' => 'appId', 
 
      'secret' => 'Secret', 
 
     )); 
 

 
     $user = $facebook->getUser(); 
 
     
 
     if ($user) { 
 

 
      $user_profile = $facebook->api('/me', array('fields' => 'id,email,name,first_name,last_name,picture')); 
 
      
 
      $user_id = Model_UserFunctions::checkIfUserExist($user_profile['email']); 
 
      if($user_id > 0) 
 
      { 
 
       
 
       Session::instance()->set('user', array(
 
        'fb_id' => $user_profile['id'], 
 
        'user_id' => $user_id, 
 
        'pic' => $user_profile['picture'], 
 
        'email' => $user_profile['email'], 
 
        'first_name' => $user_profile['first_name'], 
 
        'last_name' => $user_profile['last_name'], 
 
       )); 
 
       
 
       //var_dump($_SESSION); 
 
       $this->redirect('profile'); 
 
       exit; 
 
      } 
 
      $values = array(
 
        'email' => $user_profile['email'], 
 
        'username' => $user_profile['email'], 
 
        'password' => '12345678' 
 
       ); 
 
      $user = ORM::factory ('User'); 
 
      $user->values($values); 
 
      try 
 
      { 
 
       if($user->save()){ 
 
        $user_new_id = $user->as_array(); 
 
        $user_new_id = $user_new_id['id']; 
 
        Session::instance()->set('user', array(
 
          'fb_id' => $user_profile['id'], 
 
          'user_id' => $user_new_id, 
 
          'pic' => $user_profile['picture'], 
 
          'email' => $user_profile['email'], 
 
          'first_name' => $user_profile['first_name'], 
 
          'last_name' => $user_profile['last_name'], 
 
         )); 
 
        
 
        $this->redirect('profile'); 
 
       } 
 

 

 
      } 
 
      catch (ORM_Validation_Exception $e) 
 
      { 
 
       $result = $e->errors('models'); 
 
       echo '<pre>'; 
 
       print_r($result); 
 
       exit; 
 
      } 
 

 

 
     } 
 
     else 
 
     { 
 
      
 
      $this->redirect($facebook->getLoginUrl(array('id,email,name,first_name,last_name,picture'))); 
 
     } 
 
     exit; 
 
    
 
    }

Отредактировано: Моя цель, чтобы использовать Facebook выход из системы, потому что на моем сайте я использую только Facebook входа, нет другого способа войти мой сайт, это его идея. И у меня должен быть метод выхода на моем сайте, поэтому, когда пользователь хочет выйти из системы, он может это сделать. Это выходит из фейсбука, но отображается страница входа в facebook. Как перенаправить рядом с моим сайтом. Я поставил его в следующем, но он не перенаправлять на нее:

<a href="https://www.facebook.com/logout.php? next=http://mysite.dev &access_token=Null">Logout</a>

+1

, но ... им просто нужно войти в систему с другой учетной записью на facebook ... Я не думаю, что вы можете вывести их из своей учетной записи facebook в facebook с вашего сайта. –

+0

Разве это не способ выйти из своей фейсбуки или просто убить сеанс facebook, который находится на моем сайте? :) У меня есть кнопка для входа в facebook, я установил сеанс, и именно поэтому я хочу выйти из системы с моего сайта. –

+1

Простите меня, но я не понимаю ... Если вы вышли меня из своего сайта, и я все еще вошел в Facebook ...то я возвращаюсь к странице на вашем сайте. Я все еще использую ту же учетную запись FB, чтобы вы не могли войти в систему с другим. Хотя, если я запишусь в facebook с другим или если я не зашел в систему на Facebook, то ... вы могли бы принять меня с другим или попросить меня сначала войти в FB –

ответ

0

Вы можете получить facebook выхода из системы URL с помощью facebook-PHP-SDK API. Когда пользователь нажмет на этот URL-адрес, он будет отключен от своей учетной записи в facebook.

if ($user) { 
    $logoutUrl = $facebook->getLogoutUrl(); 
} else { 
    $loginUrl = $facebook->getLoginUrl(); 
} 

Для получения дополнительной информации вы можете проверить этот URL.

https://github.com/facebookarchive/facebook-php-sdk

+1

Я использовал его -> '$ logoutUrl = $ facebook-> getLogoutUrl(); $ this-> redirect ($ logoutUrl); 'но перенаправляется на' https: // www.facebook.com/home.php', он не выходит из системы. –

+0

$ facebook-> getLogoutUrl() - единственный способ выйти из учетной записи facebook, используя php. Поэтому, пожалуйста, проверьте его правильно или покажите нам еще один код. –

+0

Я отредактировал мой вопрос, я добавил свой метод для входа в систему, и есть также способ выхода из системы. $ facebook-> getLogoutUrl() не выходит из системы. –

0

Тогда у вас нет проблемы с Facebook

Есть только сеанс, который должен быть разрушен ...

На этой странице PHP инструкции есть пример, показывающий, вам может понадобиться шаги, чтобы фильм уничтожить сессию за unset($_SESSION)

http://php.net/manual/en/function.session-destroy.php

Чтобы заставить пользователей выйти из Facebook, для меня это не очень удобно.

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

+0

Вы не можете выйти из системы facebook, просто уничтожьте сеанс PHP. –

+0

@DharmeshGoswami - OP хочет вывести пользователя из своего сайта, а не facebook – Quentin

+0

. Я разместил этот ответ только после обмена комментариями с @ci_lover, чтобы понять, что вопрос не касался входа в/выкл Facebook, но на сайте –

Смежные вопросы