0
Я пытаюсь реализовать авторизацию на основе ACL для своего веб-проекта. У меня есть метод входа в систему:CakePHP 2.0 Auth-> user()
function login() {
if ($this->request->is('post')) {
if ($this->Auth->login()) {
debug($this->Auth->user());
//return $this->redirect($this->Auth->redirect());
} else {
$this->Session->setFlash(__('Username or password is incorrect'), 'default', array(), 'auth');
}
}
}
Вместо перенаправления, я распечатать вошедшего в пользовательской информации. И это хорошо работает. Однако, если я debug($this->Auth->user())
в AppController
function beforeFilter() {
parent::beforeFilter();
debug($this->Auth->user());
$user = $this->Auth->user();
if ($user) {
$this->set('isAuthed', true);
$this->_userId = (int) $user['User']['id'];
} else {
$this->set('isAuthed', false);
}
}
я ничего не получаю. Что может быть проблемой?
Вы включаете компонент 'Auth' в' AppController'? – Ross
@ Росс да, конечно. Кажется, что помощник 'Session' работает неправильно. Если я пишу что-то в 'UserController' с' $ this-> Session-> write ('test', test) ', я не могу прочитать его в' AppController'. Есть идеи? – nil
Возможно, вы уже проверили это, но файлы cookie включены в вашем браузере? Если это так, обновляется ли значение cookie CAKEPHP после каждого запроса? (btw, в AppController вам не нужно вызывать 'parent :: beforeFilter()', поскольку это пустой метод в 'Controller') – nIcO