这是我第一次在我的应用程序中使用 PHP 原生密码函数。我使用以下代码存储了用户的密码:
password_hash($this->input->post('password'),PASSWORD_BCRYPT);
结果存储在数据库中。现在我想在登录过程中验证用户。
我的问题在这里。我有两个选择:
方法一
$sql = "SELECT id,password FROM tbl_members WHERE email = ? LIMIT 1";
$result = $this->db->query($sql,array('user@site.com'));
if ($result->num_rows()) {
$row = $result->row();
$hash = $row->password;
if (password_verify($this->input->post('password'), $hash)) echo 'Successful login';
}
方法二
$hash = password_hash($this->input->post('password'),PASSWORD_BCRYPT);
$sql = "SELECT id FROM tbl_members WHERE email = ? AND password = ? LIMIT 1";
$result = $this->db->query($sql,array('user@site.com',$user_hashed_password));
if ($result->num_rows()) echo 'Successful Login';
哪种方法更适合登录过程?