Я пытаюсь добиться реализации входа в CodeIgniter, я хэширую пароль при регистрации, как password_hash($this->input->post('password'),PASSWORD_DEFAULT)
в моем контроллере и в том же контроллере, я пытаюсь написать метод входа, который выглядит следующим образом:
public function loginValidation() {
$this->form_validation->set_rules('email', 'Email', 'trim|required');
$this->form_validation->set_rules('password', 'Password', 'trim|required');
if ($this->form_validation->run()) {
// true
$email = $this->input->post('email');
$password = $this->input->post('password');
// User Model Loaded in constructor
if ($this->user->canLogin($email, $password)) {
$session_data = array('email' => $email );
$this->session->set_userdata($session_data);
redirect('profile/personal','Refresh');
} else {
$this->session->set_flashdata('error', 'Invalid Username or Password');
//redirect('login','Refresh');
}
} else {
// try again to login
//redirect('login','Refresh');
}
}
Моя пользовательская модель:
public function canLogin($email, $password) {
$this->db->where('email',$email);
$this->db->where('password',$password);
$query = $this->db->get($this->tableName);
if ($query->num_rows() > 0) {
return true;
} else {
return false;
}
}
Я знаю, что в какой-то момент мне нужно password_verify($string,$hash)
, но я не могу понять.
Как проверить пароль по электронной почте и перенаправить на нужное представление, т.е. personal/profile
, и я делаю запрос с помощью вызова AJAX.