Отладка цикла перенаправления браузера

Я использую CakePHP с компонентами ACL и Автором. Мои загрузки страницы, прекрасные для незарегистрированных пользователей, но если я пытаюсь войти в систему как зарегистрированный пользователь, я получаю бесконечный цикл перенаправления в браузере.

Я уверен, что это - своего рода проблема полномочий, но проблема существует даже для пользователей, у которых есть полномочия для всего. Единственный способ предотвратить это поведение состоит в том, чтобы позволить '*' в beforeFilter методе моего AppController.

Что лучший способ состоит в том, чтобы отладить этот вид проблемы?

Спасибо!

6
задан just_wes 8 March 2010 в 22:05
поделиться

3 ответа

Для целей отладки попробуйте сначала вставить это в свой AppController :: beforeFilter () :

$this->log("Here: {$this->here}, coming from: " . $this->referer(), LOG_DEBUG);

Это будет записывать в войдите в систему /app/tmp/logs/debug.log . Вы также можете объединить это с переопределением метода перенаправления в AppController :

function redirect($url, $status = null, $exit = true) {
    $trace = debug_backtrace();
    $this->log("Redirecting to: " . Router::url($url) . ", initiated in {$trace[1]['file']} on line {$trace[1]['line']}", LOG_DEBUG);
    parent::redirect($url, $status, $exit);
}
10
ответ дан 8 December 2019 в 18:35
поделиться

Первое, что я хотел бы проверить, это метод входа в систему контроллера Users. При правильной реализации вы обычно будете направлять весь неподтвержденный / авторизованный трафик на контроллер входа в систему. Однако, если вы не предоставили публичное разрешение, это, скорее всего, приведет к бесконечному циклу. Поэтому проверьте app_controller (или где вы храните разрешения Auth / ACL) и убедитесь, что Users.login общедоступен.

1
ответ дан 8 December 2019 в 18:35
поделиться

Также убедитесь, что вы проверяете правильность настроек вашего компонента Auth в app_controller.

http://book.cakephp.org/1.3/en/The-Manual/Core-Components/Authentication.html#setting-auth-component-variables

Я обычно определяю их все явно. Может быть, проверьте что-нибудь вроде этого, http://www.webdevelopment2.com/cakephp-auth-component-tutorial-1/ Просто чтобы убедиться, что все настроено правильно.

Еще я обнаружил, что иногда beforeFilter () может иногда сбивать настройку Auth в вашем app_controller, поэтому, возможно, попробуйте в ваших контроллерах, имеющих

parent::beforeFilter();

, чтобы убедиться, что beforeFilter () вашего app_controller выполняется.

2
ответ дан 8 December 2019 в 18:35
поделиться
Другие вопросы по тегам:

Похожие вопросы: