gpt4 book ai didi

JavaMail - 用于用户注册的电子邮件身份验证

转载 作者:行者123 更新时间:2023-12-02 06:16:31 26 4
gpt4 key购买 nike

我正在开发一个基于 Spring 的网络应用程序,当用户输入他的电子邮件和密码进行注册时我想验证它们并向他发送电子邮件。我已经使用 java mail api并正确设置gmail smtp

这是我的注册 Controller 类。

    @RequestMapping(value = "/globalshop/register", method = RequestMethod.GET)
public final ModelAndView registerModel(
HttpServletRequest request, HttpServletResponse response)
{
final String user_email = request.getParameter("user_email");
final String user_password = request.getParameter("user_password");

Properties email_properties = new Properties();

email_properties.put("mail.smtp.auth", "true");
email_properties.put("mail.smtp.starttls.enable", "true");
email_properties.put("mail.smtp.host", "smtp.gmail.com");
email_properties.put("mail.smtp.port", "587");

final String siteEmail = "**************@gmail.com";
final String siteEmailPassword = "*************";

Session session= Session.getInstance(email_properties, new Authenticator() {
protected javax.mail.PasswordAuthentication getPasswordAuthentication() {
return new javax.mail.PasswordAuthentication(siteEmail, siteEmailPassword);

}
});


try {
Message message = new MimeMessage(session);

message.setFrom(new InternetAddress(siteEmail));
message.setRecipients(Message.RecipientType.TO, InternetAddress.parse(user_email));
message.setSubject("Testing Subject");
message.setText("Dear User,"+ "\n\n You have been successfully registerd with the gift corner!");

Transport.send(message);
System.out.println("Done");

} catch (AddressException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (MessagingException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}


registerSucessView = new ModelAndView("test_register_succes");
registerSucessView.addObject("welcome", "welcome user");


return registerSucessView;
}

}

user_emailuser_password 是传入请求参数。如何验证它们?如果验证成功,则可以将 user_email 设置为 message.setRecipients(...)

最佳答案

Spring 确实提供了一种验证模型的机制,如 here 所示。 。我个人建议您遵循这些准则,以便您的应用程序充分利用 Spring 提供的功能。

话虽如此,用户名验证的最基本形式是确保该用户名尚未存在于您的数据库中,并且在某些情况下,可能不允许使用某些特殊字符。

另一方面,对于密码来说,通常有一些长度限制,例如至少 5 个字符。在某些情况下,您还可以强制使用不同大小写的字母、数字和其他特殊符号。在这些情况下,正则表达式会很有帮助。 (注意:对于这种情况,不建议构建尝试匹配所有内容的单个正则表达式)。

在完全不同的注释中,不要忘记将您的密码存储为哈希值,然后,当用户登录时,您将用户输入的密码的哈希值与您拥有的哈希值进行比较已经在您的数据库中。

关于JavaMail - 用于用户注册的电子邮件身份验证,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21401228/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com