Аутентификация Cakephp и Facebook: Запретить автоматический вход в систему, если пользователи входят в браузер Facebook - PullRequest
1 голос
/ 22 февраля 2012

Я использую плагин WebTechNicks Facebook для Cakephp .
Это мой AppController

class AppController extends Controller {
var $helpers = array('Html', 'Form', 'Time', 'Number', 'Javascript','Facebook.Facebook');
var $components = array('Auth', 'Cookie', 'RequestHandler','Email', 'Facebook.Connect','Session');
function beforeFilter() {
        $fb_user = $this->Connect->user();
        $this->set("fb_user",$this->Connect->user());
        if($this->Auth->user()) {
            $user = $this->User->find('first', array(   'conditions' => array('User.id' => $this->Auth->user('id')),
                                                                                                    'fields'=>array('User.id', 'User.facebook_id'),
                                                                                                    'contain' => ''));
            //$this->writelog($user);
            $this->set('user_fb_id',$user['User']['facebook_id']);
        }
}

В поле зрения:

<?php if($session->check('Auth.User')):?>
     <?php if (isset($user_fb_id) && $user_fb_id ==0):?>
            <?php echo $facebook->login('Sync with facebook'); ?>
     <?php endif;?>
     <?php if (empty($fb_user) || $fb_user==null):?> 
          <a href="<?php echo $this->webroot; ?>users/logout">Logout</a>
     <?php else:?>
          <?php echo $facebook->logout() ?>
     <?php endif;?>

<?php else:?>
      <?php echo $facebook->login('Login with facebook') ?>
      <a href="<?php echo $this->webroot; ?>users/login">Login</a>
<?php endif; ?>

Пользователь может войти в мою сеть через Facebook или обычную регистрацию.
Моя проблема:
Если пользователи заходят в Facebook через свой браузер, они переходят на мой веб-сайт (на другой вкладке), он автоматически регистрируется .
Я не хочу этого, пользователи должны нажать кнопку «Войти через Facebook», чтобы войти.
Кто может мне помочь? Большое спасибо!

1 Ответ

2 голосов
/ 22 февраля 2012

Это не победит цель использования единого входа в Facebook, не так ли?Также не логично использовать плагин Facebook Connect, если им необходимо снова войти в систему.

Плагин проверяет FB, чтобы подтвердить, что сеанс действителен.Это в основном открывает невидимое соединение facebook для аутентификации.Когда он видит, что пользователь уже имеет активную сессию, он просто возвращает эту сессию.

По справедливости, ему действительно нужно нажать «Войти через Facebook» при первом посещении вашего сайта, чтобы предоставить приложению доступ к их данным.

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