Maison  >  Article  >  Java  >  Implémentation d'une méthode basée sur la récupération du mot de passe SpringBoot (image et texte)

Implémentation d'une méthode basée sur la récupération du mot de passe SpringBoot (image et texte)

不言
不言avant
2019-02-01 10:57:112800parcourir

Le contenu de cet article concerne la mise en œuvre de la méthode de récupération de mot de passe SpringBoot (images et textes). Il a une certaine valeur de référence. Les amis dans le besoin peuvent s'y référer.

Je travaille récemment sur mon propre projet, et l'une des fonctions que tout le monde connaît est la récupération de mots de passe. Je vais partager mon approche ici, car il y a tellement d’embûches dans le processus. Alors enregistrez-le.

Utilisation des technologies : SpringBoot1.5.6, JPA, SpringSecurity4, MySQL, BootStrap, etc. . .

Organigramme de récupération de mot de passe :

Tout d'abord, permettez-moi de vous présenter les principes de base de la récupération de mot de passe :

Ensuite, implémentons-le selon l'organigramme. La première étape consiste à cliquer pour accéder à l'interface de récupération du mot de passe : j'utilise cette méthode. Vous pouvez vous sentir libre de

L'interface de récupération du mot de passe est :

Étape 2 : Déterminer si le compte saisi est valide

Ce qui suit est le lien URL généré s'il existe :

backPassword :

Étape 3 : Jugement Si le compte existe dans la table de réinitialisation. La table de réinitialisation est une table qui enregistre les URL (heure d'expiration, identifiant, informations de compte, etc.)

Le but de ceci est le suivant : si cette donnée existe et n'est pas supprimée, deux données avec le même compte mais des identifiants différents seront générées la prochaine fois que vous récupérerez le mot de passe, comme ça L'inconvénient est : je ne sais pas quelle URL renvoyer lors de l'envoi d'un email, car il y a 2 URL

Étape 4 : Envoyer l'e-mail

Regardons-le d'abord L'effet suivant :

La prochaine étape est la partie importante : comment gérer le lien de vérification. Nous pouvons d'abord voir que /user. /reset_password est une requête suivie de ses paramètres, alors rappelez-vous !

Nous devons écrire une requête, la route est /user/reset_password, et en même temps, nous devons autoriser la requête dans SpringSecurity. Le processus de vérification est le suivant : tout d'abord, comparez le sid et le nom d'utilisateur (c'est-à-dire l'adresse e-mail) transmis à partir de la demande avec le sid et le compte dans la base de données, et comparez également si l'heure est comprise dans la période de validité de 30 minutes. Si ceux-ci sont satisfaits, cela renvoie vrai, sinon faux. Il convient de noter qu'il existe ici un remplacement où les espaces sont remplacés par des signes +. En effet, les signes + sont automatiquement convertis en espaces lorsque le code HTML est transmis au backend. S'ils ne sont pas remplacés par des signes +, une vérification sera toujours demandée. échec! ! ! Une fois que true est renvoyé, cela signifie que l'URL de vérification a réussi et elle passera à l'interface de réinitialisation du mot de passe :

Remarque : Je n'ai aucune vérification ici Pour l'optimisation, il ne devrait pas y avoir autant de nids if else

pour libérer l'itinéraire de la requête : sinon, cliquer sur le lien passera à l'interface de connexion

Accédez à la page de réinitialisation. Si les mots de passe que nous saisissons deux fois sont incohérents, l'invite suivante apparaîtra. J'ai utilisé JS pour effectuer la vérification :

Bien entendu, par souci de rigueur, nous effectuons également deux vérifications de mot de passe en arrière-plan. Si la saisie est cohérente, les informations seront mises à jour. Dans le cas contraire, une erreur sera renvoyée

Il n'y a rien ici, faites juste attention à crypter le mot de passe avec MD5+salt avant de l'enregistrer dans la base de données, puis enregistrez-le. Jetons un coup d'œil à l'effet de la saisie du mot de passe correct deux fois : la page vous invite à le faire. la modification est réussie et aucune erreur n'est signalée en arrière-plan. Pour le moment, utilisez le nouveau mot de passe pour vous connecter

.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer