CakePHP: попросить пользователя ввести пароль при входе в аккаунт - PullRequest
0 голосов
/ 21 августа 2011

Как я могу заставить пользователя повторно вводить свой пароль, когда он получает доступ к своей учетной записи? Так, например: domain.com/account, а затем они видят простое поле пароля (даже если они вошли в систему), если они неверно вводят пароль, то они выходят из системы и отправляются на домашнюю страницу с сообщением сеанса «из соображений безопасности вы Вы вышли из вашей учетной записи '.

Может кто-нибудь помочь?

Учетная запись является методом редактирования в моем контроллере пользователей.

Спасибо

1 Ответ

0 голосов
/ 21 августа 2011

Я бы сделал что-то вроде этого ~

// edit.ctp View
echo $this->Form->input('password_check', array('type'=>'password'));

// user.php Model
function check_user_password($get_the_current_users_id) { 
    $salt = Configure::read('Security.salt');
    $this->User->id = $get_the_current_users_id;
    $hashed_password = $this->User->field('password');
    // check password  
    if($hashed_password == md5($data['User']['password_check'].$salt)) {  
        return true;
    } else {
        return false;
    }
}  

Вам нужно настроить бит хэширования пароля;если вы не используете соль и т. д.

Но идея состоит в том, чтобы сравнить хеш-пароль пользователей в базе данных с тем, который они отправляют.Если это соответствует;тогда вы можете продолжить.Иначе, вы можете выйти / вернуть ошибку.(Для удобства использования я бы не выходил из системы, поскольку это было бы просто раздражающим.)

...