Mysql
 sql >> Base de données >  >> RDS >> Mysql

Quelle méthode est la meilleure pour valider les informations d'identification de l'utilisateur ?

Le truc, c'est que… Vous êtes censé stocker salé, haché mots de passe dans la base de données. Puisqu'ils sont salés individuellement par utilisateur/mot de passe, vous ne pouvez pas recherchez-les directement avec password = ? , car vous ne connaissez pas le sel et ne pouvez donc pas calculer le hachage correspondant à l'avance. Si vous le faites correctement, vous devez récupérez d'abord l'enregistrement de l'utilisateur par nom d'utilisateur, puis validez le hachage du mot de passe à l'aide du sel/hachage récupéré. Pseudo-code :

$user = fetch_from_database($_POST['username']);

if (!$user) {
    throw new Exception("User doesn't exist");
}

if (!password_verify($_POST['password'], $user['password_hash'])) {
    throw new Exception('Invalid password');
}

echo 'Welcome ', $user['name'];

Voir http://php.net/password_hash , http://php.net/password_verify .