Я делаю страницу входа, и мне нужна помощь в получении доступа к хэш-паролю в моей базе данных с помощью CodeIgniter.
Моя функция hashPassword:
function hashPassword($pass, $passKey){
$key = base64_decode($passwordKey);
return base64_encode(hash_hmac(
'sha256',
$key . mb_convert_encoding($password, 'UTF-16LE', 'ASCII'),
$key, true));
}
Я должен сделать следующее:
- извлекает
id
пользователя из таблицы my_aspnet_Users
, используя его username
- извлекают
password
и passwordKey
из my_aspnet_Membership
, используя их идентификатор
- проверьте, равен ли
password
hashPassword(<password entered by user>, passwordKey)
, чтобы узнать, действителен ли введенный пароль.
Итак, у меня есть две модели:
Class Password extends CI_Model{
function getPassword($password, $passwordKey){
$this -> db -> select ('userId, Password, PasswordKey');
$this -> db -> from ('my_aspnet_Membership');
$this -> db -> where ('Password = '. "'" . $password . "'");
$this -> db -> where ('PasswordKey = '. "'" . $passwordKey . "'");
$q = $this -> db -> get();
if ($q -> num_rows() == 1){
return $q ->result();}else{
return false;
}
}
}
и ..
Class User extends CI_Model{
function getUser($id){
$this -> db -> select('id, name ');
$this -> db -> from('my_aspnet_Users');
$this -> db -> where('id = '. "'". $id . "'");
$this -> db -> limit(1);
$query = $this -> db -> get();
if($query -> num_rows() == 1){
return $query->result();
}
else{
return false;
}
}
}
Я просто не знаю, как заставить их работать вместе для проверки пароля.