Je vais vous présenter le flux de la fonction d'authentification du courrier implémentée lors de la création d'un service Web. Tout ce que vous avez à faire est d'enregistrer la base de données et de vérifier les doublons. Cependant, au début, il a fallu du temps pour obtenir une image de la méthode de mise en œuvre, donc Je voudrais présenter principalement le flux de mise en œuvre.
Flux global:
Transmettez les informations utilisateur au serveur comme vous le souhaitez, que ce soit Ajax ou Post.
Nous traiterons dans le flux suivant.
Pour identifier que l'utilisateur a cliqué sur l'URL Il est nécessaire d'ajouter les informations associées à l'utilisateur enregistrées dans la table temporaire à l'URL. Si vous pouvez battre ou prédire, vous pouvez authentifier d'autres utilisateurs temporaires, donc Utilisez UUID.
RegisterUserController
boolean isMember = memberRepository.existsByUsername(user);
if(!isMember){
String vali = UuidUtil.generateUUID();
BCryptPasswordEncoder passEncoder = new BCryptPasswordEncoder();
try {
TmpMember tmpMember = new TmpMember(user, passEncoder.encode(pass), displyname, vali);
tmpMemberRepository.saveAndFlush(tmpMember);
} catch (Exception e) {
e.printStackTrace();
//status = "Erreur: échec de l'enregistrement de la base de données";
return status;
}
String IPadnPort = myIP.getYourIP();
String from = "Adresse e-mail de l'expéditeur";
String title = "Demande de confirmation de compte Tobidemo";
String content = displyname + "M." + "\n" + "\n" + "Veuillez accéder au lien ci-dessous pour authentifier votre compte" + "\n"
+"http://" + IPadnPort
+ "/validate"+ "?id=" + vali ;
try {
SimpleMailMessage msg = new SimpleMailMessage();
msg.setFrom(from);
msg.setTo(user);
msg.setSubject(title);//Réglage du titre
msg.setText(content); //Paramètres du corps
mailSender.send(msg);
} catch (Exception e) {
e.printStackTrace();
//status = "Erreur: échec de l'envoi de l'e-mail";
return status;
}
status = "ok";
}
return status; //ng
}
;
return status; //ng
}
L'e-mail suivant sera envoyé à l'utilisateur.
Lorsqu'un utilisateur clique sur une URL pour y accéder, il reçoit un UUID avec id =. Vérifiez si l'UUID reçu est stocké dans la table temporaire. Si confirmé, dans le tableau qui stocke les informations utilisateur authentifié, Réenregistrez-vous. Il redirige ensuite vers la page de connexion du service.
ValidateUserController.java
@CrossOrigin
@RequestMapping(value = "/validate", method = RequestMethod.GET)
public String validate(RedirectAttributes redirectAttributes,ModelAndView mav, @RequestParam("id") String id) throws Exception {
String isRegisterd = "false";
boolean isExist = tmpMemberRepository.existsByValidation(id);
//System.out.println(isExist);
if (isExist) {
try {
TmpMember tmp = tmpMemberRepository.findByValidation(id);
String username = tmp.getUsername();
String displyname = tmp.getDisplyname();
String password = tmp.getPassword();
Member member = new Member();
member.setDisplyname(displyname);
member.setPassword(password);
member.setUsername(username);
memberRepository.saveAndFlush(member);
isRegisterd = "true";
} catch (Exception e) {
//Bloc de capture généré automatiquement TODO
e.printStackTrace();
isRegisterd = "false";
}
}
redirectAttributes.addFlashAttribute("isRegisterd", isRegisterd);
return "redirect:/edit/begin";
}
Bien que ce soit une fonction minimale, il était étonnamment facile de mettre en œuvre l'authentification de messagerie. Puisqu'il s'agit de ma propre logique d'authentification de messagerie, il peut y avoir quelque chose d'étrange, mais comme il s'agit de développement personnel, il est important de travailler!
Recommended Posts