Войдите, затем выйдите из системы при первом перенаправлении - PullRequest
0 голосов
/ 23 ноября 2011

Все работало нормально на локальном сервере: PHP 5.3.4, MySQL 5.1.49, Apache 2.2.17 и CakePHP 2.0.1.

Но когда я развернул на производственном сервере: PHP 5.3.5, MySQL 5.1.49, Apache 2.?и CakePHP 2.0.1.

... происходит странная ошибка.Действие входа выполнено успешно, так как я могу проверить по моему действию UserController login() (и я отслеживаю все вызовы стека).Но так же, как он перенаправляет на URL-адрес / admin (то есть путь маршрутизатора к заданному действию), пользователь удаляется из сеанса и просто возвращается в состояние «не зарегистрировано».В сущности, следующее условие if в AuthComponent просто не очень хорошо работает, $this->flash просто ничего не показывает.

(/ lib / Cake / Controller / Component / AuthComponent.php: строка 315)

if (!$request->is('ajax')) {
    $this->flash($this->authError);
    $this->Session->write('Auth.redirect', Router::reverse($request));
    $controller->redirect($loginAction);
    return false;

Я использую компонент Auth / Acl.Я настроил свой ответ на CakePHP 2.0: ACL не работает

Я понятия не имею, что происходит.

РЕДАКТИРОВАТЬ: Этим утромЯ заметил, что: проблема возникает только на удаленном сервере, в Chrome или Opera - для Mac OSX.Я также проверил все это на других машинах, Mac и Windows, и все работает нормально.Это конечно что-то на моей машине.Возможно, некоторые настройки в / etc / hosts.

Ответы [ 2 ]

0 голосов
/ 03 января 2012

Я сталкиваюсь с подобной ситуацией, пробуя плагин пользователя cakeDC с cake2. Если я вышел из login () перед redirect () в user_controller и повторил ссылку html на страницу, где $ this-> Auth-> loginRedirect должен был взять меня, то компонент Auth работал.

Так что, похоже, это проблема сеанса в сочетании с перенаправлением.

Я получил его только работая, изменив настройки сеанса в /Config/core.php, используя «use_trans_sid»:

Configure::write('Session', array(
        //'defaults' => 'php'
        'defaults' => 'cake',
        'cookie' => 'CAKEPHP2',
        'ini' => array('session.use_trans_sid' => true)
    ));
0 голосов
/ 27 ноября 2011

Похоже на проблему сессию, попробуйте некоторые базовые тесты. Установите значение в сеансе, используя обычные функции php, обновите страницу и посмотрите, все ли данные находятся в сеансе. Если нет, то я бы связался с хозяином по этому поводу.

...