2017-06-05 1 views
0

Je suis en train de créer une fonctionnalité "mot de passe oublié" pour mon projet. Je joins un JWT à la fin du lien de réinitialisation du mot de passe qui expire après 10 minutes. Mais je veux aussi que ce lien ne soit utilisé qu'une seule fois (juste après qu'ils aient réinitialisé leur mot de passe). Au début je me suis dit que je mettrais juste à jour l'expiration du jeton une fois qu'ils ont mis à jour leur mot de passe (stupide) mais une fois que je l'ai fait, j'ai réalisé que le jeton ne mettrait pas leur url ou leur URL dans leur email! Je me demande donc si quelqu'un connaît un moyen de créer un JWT à usage unique. J'espère avoir donné assez d'informations sur ce que je cherche. Sinon, n'hésitez pas à me demander d'exposer. Merci d'avance!Comment faire un JWT à usage unique

Répondre

1

Vous pouvez enregistrer la date et l'heure de la dernière modification de mot de passe effectuée par l'utilisateur dans la base de données avec son enregistrement. Si le dernier changement de mot de passe date/heure est supérieur à l'heure à laquelle le jeton a été créé, renvoyez false pour la fonction. Bien sûr, vous devez ajouter un peu de logique, mais il ne devrait pas être difficile ou étendu. Il existe de meilleurs moyens de faire cela qui impliquent des jetons de rafraîchissement et ainsi de suite, mais cela semble être une solution simple compte tenu du problème.