cakephp auth getuser в prefilter

в моем приложении cakephp с пользовательской аутентификацией (см. здесь ) я хотел бы проверить auth пользователя в методе beforefilter, и если он / она не аутентифицирован, я бы хотел вручную отобразить страницу с ошибкой и выйти. Моя проблема заключается в том, что, кажется, объект auth получает только заполненные данные ПОСЛЕ вызова действия к действию, которое требует auth. мне нужно будет получить доступ к данным auth в моей функции beforefilter. как добиться этого? если я пытаюсь получить к нему доступ auth-> user (), он возвращает NULL, loggedIn () возвращает всегда false (потому что нет данных, имеет смысл)

Я наткнулся на этот вопрос, и предлагаемое решение не работало для меня.

Правильный способ получить аутентификацию в файле beforeFilter в Cakephp 3 – это позвонить

$this->Auth->config('checkAuthIn', 'Controller.initialize');

сразу после загрузки компонента auth. Это особенно полезно для сценариев аутентификации без учета состояния (например, аутентификация токена).

Затем вы можете получить информацию о пользователе в beforeFilter, позвонив

$user = $this->Auth->user();

См. Документы http://book.cakephp.org/3.0/en/controllers/components/authentication.html#deciding-when-to-run-authentication

Вам не нужно проверять, проверен ли пользователь и показать страницу с ошибкой. Просто добавьте метод unauthenticated unauthenticated() в свой собственный класс проверки подлинности, например класс BasicAuthenticate (без установки заголовков). Обработчик ошибок, использующий средство визуализации исключений, создаст соответствующую страницу ошибки.

из руководства :

 class CustomAuthenticate extends BaseAuthenticate { public function authenticate(CakeRequest $request, CakeResponse $response) { // Return an array of user if they could authenticate the user, // return false if not } } 

метод authenticate должен возвращать массив с данными пользователя. Из вашей ссылки на другой вопрос кажется, что это не