Я понял, что компонент Auth активируется раньше, чем метод контроллера, и предпринимает действия, если пользователь не авторизован, что означает, что он перенаправляет до , когда контроллер может изменить authError.Вот почему я получаю свой «стандартный» authError.
Поскольку я использую пользовательскую функцию авторизации (в модели), пользователь уже аутентифицирован (если есть запись), и часть Auth переменных сеанса установлена,Поэтому, если я проверяю данные аутентификации сеанса, я могу решить в контроллере, является ли пользователь авторизованным и не активированным.Затем я установил флэш-сообщение, чтобы пользователю сообщалось об ошибке аутентификации от компонента auth (нет доступа к этой области) и другое сообщение как обычное флэш-сообщение, чтобы активировать себя.
function login() {
if(empty($this->Auth->data) and $this->Session->read('Auth.User.active')===0){
$this->Session->setFlash(__('Please activate your user first.',true));
}
}
Полагаю, это не самый элегантный способ решить эту проблему;), но я новичок в веб-программировании и также CakePHP.