Авторизация на фейсбуке (требуется авторизация) с помощью CakePHP вызывает циклический сеанс ключа авторизации - PullRequest
1 голос
/ 23 февраля 2010

Я занимаюсь разработкой приложения iframe для Facebook с cakephp. Моя проблема в том, что мне нужно авторизоваться на Facebook как только пользователь заходит на домашнюю страницу. я положил этот код $ user = $ this-> facebook-> require_login (); в app_controller до метода filter, похоже, работает с авторизацией пользователя.

но после авторизации пользователя мое приложение покидает фрейм Facebook и переходит на обычную страницу (не внутри фейсбука), и я вижу это в адресной строке "auth_token = f754dc2ed39b5e2b93f11a6e648f1517 & selected = 1".

тогда, когда я нажимаю ссылку на другую страницу в моем приложении, кажется, что ключ auth_token зацикливается на адресной строке.

как я могу это исправить? спасибо

Ответы [ 2 ]

1 голос
/ 24 апреля 2011

Вы можете сделать что-то вроде:

public function beforeFilter() {

        $this->fbsession = $this->facebook->getSession ();      
        $this->me = null;

        // Session based API call.
        if ($this->fbsession) {
            try {
                $this->uid = $this->facebook->getUser ();
                $this->me = $this->facebook->api ( '/me' );
            } catch ( FacebookApiException $e ) {
                error_log ( $e );
            }
        } else {
            $this->layout = 'login';
            $this->viewPath = 'pages';
            $this->render('login');
        }
}

Если пользователь не вошел в Facebook и / или ваше приложение не имеет доступа, он перенаправляется в представление /views/pages/login.ctpВот где вы вводите свой код для входа (как в примере с SDK).

0 голосов
/ 08 марта 2011

Вы можете перенаправить обратный вызов на определенную страницу, которая настроена для обработки обратных вызовов авторизации facebook, и использовать ее для входа пользователя в систему, а затем перенаправить их в соответствующее место на сайте (например, на страницу членов)

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