Из вашего фрагмента кода, похоже, вы кладете $this->Auth->allow()
правила в beforeFilter()
методы AppController
:
public function beforeFilter() {
$this->Auth->allow('login', 'landing');
}
Проблема заключается в том, что с ваших /landing
точек маршрута до вашего pages
контроллера и /login
к вашему users
, если ваш метод контроллеров beforeFilter()
не вызвал метод их родителя:
public function beforeFilter() {
parent::beforeFilter();
}
эти правила никогда не будут действовать. И если вы добавите этот код выше, вы фактически позволяете использовать оба метода landing
и login
в обоих контроллерах (если они существуют).
Как это теперь, родитель (видимо) никогда не называли, и поэтому, когда вы посещаете URL как /bogus
, вы попадаете на /landing
, как вы установили в AuthComponent
«ы loginAction
. Но так как это никогда не разрешено прямо в контроллере pages
beforeFilter()
, вы снова перенаправляетесь на /login
. Весь процесс выглядит так: всегда перенаправлен на /login
независимо от того, какой URL-адрес вы посещаете.
Имейте в виду, что как у вас есть, правило allow()
для login
не выполнено. Вы можете посетить /login
, потому что торт автоматически разрешает его (иначе вы окажетесь в бесконечном цикле).
Итак, сначала удалите правило landing
от allow()
. Вам это не нужно.
Затем переместите код beforeFilter()
в контроллер pages
. Измените landing
на display
как метод, который называется display
внутри этого контроллера, передается аргумент landing
. Там нет метода landing
(я предполагаю - и если есть, маршрут указывает на pages
'display
, поэтому он не будет иметь никакого эффекта)!
Последнее изменение сделает display
действия разрешено для любой страницы, переданной в качестве аргумента (например, landing
, home
, eula
или какого-либо еще вы могли бы быть с). Если вы не хотите, чтобы вы добавляли чек либо в beforeFilter()
, либо в display()
и разрешали только продолжить, если аргумент landing
.
Вы только разрешаете пользователю посещать страницу «входа» в beforeFilter, попробуйте добавить «приземление» тоже – katwhocodes
Я уже сделал, забыл добавить его в фрагмент. Обновлено сейчас – sharif9876
Где маршруты для '/ посадки' и'/login' точки соответственно? – user221931