Codeigniter密码验证问题

Codeigniter Password verify problems

我有一个用 PASSWORD_DEFAULT 加密密码的登录名。有谁知道错误在哪里?

没有找到,从我的角度来看,一切都应该有效。 我认为错误与模型中的 password_verify 函数或 ID 的传递有关。

尽管有德国人的评论,但希望您能理解。

控制器代码:

//Login
    public function login(){
        //Seitenname definieren
        $data['title'] = 'Anmelden';

        //Formular überprüfung
        $this->form_validation->set_rules('user', 'Benutzername oder E-Mail', 'required');
        $this->form_validation->set_rules('passwort', 'Passwort', 'required');

        //Ausführen der Form überprüfung
        if($this->form_validation->run() === FALSE){
            //Überprüfung Negativ
            //Ansicht wird geladen
            $this->load->view('templates/header');
            $this->load->view('users/login', $data);
            $this->load->view('templates/footer');
        }else{
            //Überprüfung Positiv
            //Daten übergeben in Variabeln
            $user = $this->input->post('user');
            $passwort = $this->input->post('passwort');

            //Anmeldung überprüfen
            $userID = $this->user_model->login($user, $passwort);

            //Anmeldung wird durch geführt
            if($userID){
                //Anmeldung war erfolgreich
                //Nutzerdaten werden abgefragt und in Array übergeben
                $userinfo = array(
                    'userID' => $userID,
                    'vorname' => $this->user_model->get_where('users', $userID, 'vorname'),
                    'nachname' => $this->user_model->get_where('users', $userID, 'nachname'),
                    'username' => $this->user_model->get_where('users', $userID, 'username'),
                    'email' => $this->user_model->get_where('users', $userID, 'email'),
                    'bereich' => $this->user_model->get_where('users', $userID, 'bereichID'),
                    'position' => $this->user_model->get_where('users', $userID, 'positionID'),
                    'mitglied' => $this->user_model->get_where('users', $userID, 'mitglied_seit'),
                    'logged_in' => TRUE
                );

                //Array wird in Session gespeichert
                $this->session->set_userdata($userinfo);

                //Flashmeldung
                $this->session->set_flashdata('success', 'Anmeldung erfolgreich');

                //Umleitung
                redirect('');

            }else {
                //Anmeldung fehlgeschlagen
                //Flash Medlung
                $this->session->set_flashdata('danger', 'Anmeldung fehlgeschlagen, bitte erneut versuchen');

                //Umleitung
                redirect('login');
            }
        }
    }

模型代码:

    public function login($user, $pass){
    //Login wird geprüft
    //Hash und ID wird abgefragt
    $this->db->select('ID, passwort');
    $this->db->where('username', $user);
    $this->db->or_where('email', $user);
    $result = $this->db->get('users');


    if(!password_verify($pass, $result->row(0)->passowrt)){
        return FALSE;
    }else{
        //Rückgabe der ID
        if($result->num_rows() == 1){
            return $result->row(0)->ID;
        }else{
            return FALSE;
        }
    }
}

希望您能帮助我,如果您需要更多信息,请与我们联系。

感谢拼写提示,现在是正确的代码

public function login($user, $pass){
//Login wird geprüft
//Hash und ID wird abgefragt
$this->db->select('ID, passwort');
$this->db->where('username', $user);
$this->db->or_where('email', $user);
$result = $this->db->get('users');


if(!password_verify($pass, $result->row(0)->passwort)){
    return FALSE;
}else{
    //Rückgabe der ID
    if($result->num_rows() == 1){
        return $result->row(0)->ID;
    }else{
        return FALSE;
    }
}