#php #cakephp #frameworks
#php #cakephp #фреймворки
Вопрос:
Оке, так что я возился уже 5 часов подряд, и мне наконец удалось вставить свой собственный хэшированный пароль в данные post cakephp ( 2.x). До моего сведения дошло, что функция login() также хэширует пароль. Если нет, то что-то еще не так, и я не уверен, что именно.
Я хэшировал пароль, который ввел пользователь, и он совпадает с паролем в моей базе данных. Однако, когда я использую $this-> Auth-> login(), он не может войти в систему. Он продолжает возвращать false. Когда он возвращает false, я проверяю, каковы текущие данные ( $this->request->data[‘account’][‘password’], и это соответствует моему паролю в базе данных.
Есть ли какой-либо (простой) способ удалить has из cakephp, чтобы я мог использовать свой собственный?
Код, о котором я говорю, выглядит следующим образом;
public function index() {
if($this->Session->check('Auth.User')){
$this->redirect(array('controller' => 'Authentication', 'action' => 'test'));
}
if ($this->request->is('post')) {
$password = $this->request->data['account']['username'];
$this->hashPasswords($this->request->data);
if ($this->Auth->login()) {
$this->Session->setFlash(__('Welcome, '. $this->Auth->user('username')));
} else {
$this->Session->setFlash(__('Invalid username or password; '. $this->request->data['account']['username'] ."--". $this->request->data['account']['password'] ));
$this->request->data['account']['password'] = $password;
}
}
}
Комментарии:
1. Пожалуйста, всегда указывайте свою точную версию CakePHP и соответствующим образом помечайте свой вопрос! А затем прочитайте book.cakephp.org/2.0/en/core-libraries/components /… и book.cakephp.org/2.0/en/core-libraries/components /…
2. Это cakephp 2.5.1 ^_^
3. Решил избежать встроенной аутентификации и создать свой собственный. 🙂