web-dev-qa-db-fra.com

Réinitialiser le mot de passe Aide

Dans quelle table est le jeton pour réinitialiser un mot de passe enregistré? Comment le jeton est-il généré?

5
Victor Ferreira

La procédure de réinitialisation du mot de passe se produit dans le modèle suivant

components\com_users\models\reset.php

Le jeton est généré par le code suivant juste avant l'envoi du courrier électronique à l'utilisateur:

// Set the confirmation token.
    $token = JApplicationHelper::getHash(JUserHelper::genRandomPassword());
    $hashedToken = JUserHelper::hashPassword($token);

    $user->activation = $hashedToken;

Comme vous pouvez probablement le constater à partir des noms de fonctions, cela génère un mot de passe aléatoire et l'enregistre sous forme de hachage sécurisé dans le champ d'activation de la table users.

Lorsque l'utilisateur réinitialise son mot de passe, diverses vérifications sont exécutées, mais c'est celle qui vérifie que le jeton correspond à celui que l'utilisateur vient d'entrer.

if (empty($user) || $user->activation !== $token)
        {
            $this->setError(JText::_('COM_USERS_USER_NOT_FOUND'));

            return false;
        }
4
Richard B