Codeigniter-Login mit codeigniter-bcrypt
Ich benutze Codeigniter-Bcrypt vonhttps://github.com/dwightwatson/codeigniter-bcryptmit Codeigner. Ich habe ein Formular, das Post-Daten an meinen Haupt-Controller sendet. Ich überprüfe dann über ein Modell die DB für den Datensatz. Ich habe das benutzt
$hash = $this->bcrypt->hash_password($password);
Das Passwort bei der Kontoerstellung zu hashen. Und es funktioniert. Das Passwort ist in der DB korrekt gehasht. Jetzt bin ich mir jedoch nicht sicher, wo ich die Rückseite verwenden soll, um zu überprüfen, ob das in das zu sendende Formular eingegebene Kennwort mit dem gehashten Kennwort der DB übereinstimmt.
if ($this->bcrypt->check_password($password, $stored_hash))
{
// Password does match stored password.
}
else
{
// Password does not match stored password.
}
Mein Code in meinem Modell ist
function getUserByLogin($login, $password) {
$this->db->where('login',$login);
$this->db->where('password',$password);
$result = $this->getUsers();
if (count($result) > 0) {
return $result[0];
} else {
return null;
}
}
function getUsers() {
$query = $this->db->get('users');
if ($query->num_rows() > 0) {
return $query->result();
} else {
return array();
}
}
und mein Controller
if (isset($_POST['email']) && isset($_POST['password'])) {
$login = $_POST['email'];
$password = $_POST['password'];
$user = $this -> user_model -> getUserByLogin($login, $password);
$this -> saveUserToSession($user);
$loggedIn = ($user == null ? false : true);
}
Jede Hilfe wäre dankbar.