обновление cakephp с 1,3 до 2 аутентификации

Я на самом деле понял это, но я не мог найти ничего об этом, пока мозговой штурм с другим разработчиком – прослеживание через основной код, чтобы выяснить, что происходит.

Проблема довольно проста – после обновления с CakePHP v1.3 до v2.5.9 вход (аутентификация) не работает. Но нет сообщения об ошибке, чтобы рассказать вам, почему он не работает.

Как отмечено в Руководстве по миграции M 2.0 :

AuthComponent был полностью рефакторизован для 2.0, это было сделано, чтобы помочь уменьшить путаницу разработчика и разочарование. Кроме того, AuthComponent стал более гибким и расширяемым. Дополнительную информацию можно найти в руководстве « Аутентификация» .

В руководстве по проверке подлинности объясняется все хорошо и хорошо, как вы должны заставить его работать для новой установки, но ничего о том, что вам нужно сделать для переноса.

Дальнейшая проблема заключается в том, что нет никакой ошибки, чтобы рассказать вам, что происходит.

Я скопировал код для UsersController.php -> login из раздела «Руководство по UsersController.php -> login подлинности» на « Идентификация пользователей» :

 public function login() { if ($this->request->is('post')) { // Important: Use login() without arguments! See warning below. if ($this->Auth->login()) { return $this->redirect($this->Auth->redirectUrl()); // Prior to 2.3 use // `return $this->redirect($this->Auth->redirect());` } $this->Session->setFlash( __('Username or password is incorrect'), 'default', array(), 'auth' ); } } 

В моем AppController.php меня было следующее:

 public $components = array( 'Session', 'P28n', 'Store', 'SiteStore', 'UserAccessLevel', 'Auth' ); 

Затем в AppController.php -> beforeFilter :

 $this->Auth->authorize = array('Controller'); $this->Auth->loginError = __('Login failed, invalid username or password. Please try again.'); $this->Auth->authError = __('Please log-in.'); $this->Auth->allow('login', 'logout'); 

Единственное, что я знал, это то, что $this->Auth->login() возвращает false. Но проблема может быть что угодно.