Tomcat 如何使用JavaMail/Servlet机制创建确认URL?

Tomcat 如何使用JavaMail/Servlet机制创建确认URL?,tomcat,servlets,jakarta-mail,confirmation-email,Tomcat,Servlets,Jakarta Mail,Confirmation Email,我正在编写一个服务器端Java程序,该程序将向用户发送一封带有确认URL(位于电子邮件正文中)的电子邮件 已经使用JavaMail API创建了servlet(可以发送电子邮件)。。。我想知道我将如何设计/实现实际的唯一URL(最终用户点击后,它将启动浏览器并在网页中声明“已确认”)?确认的电子邮件地址必须与最终用户的电子邮件地址相匹配(用于验证目的)。我需要生成一个与数据库中创建的用户匹配的令牌,还是使用附加到URL的HttpSessions或Cookie 如果有人能给我指出正确的方向,我将不

我正在编写一个服务器端Java程序,该程序将向用户发送一封带有确认URL(位于电子邮件正文中)的电子邮件

已经使用JavaMail API创建了servlet(可以发送电子邮件)。。。我想知道我将如何设计/实现实际的唯一URL(最终用户点击后,它将启动浏览器并在网页中声明“已确认”)?确认的电子邮件地址必须与最终用户的电子邮件地址相匹配(用于验证目的)。我需要生成一个与数据库中创建的用户匹配的令牌,还是使用附加到URL的HttpSessions或Cookie

如果有人能给我指出正确的方向,我将不胜感激

快乐编程


Mike

如果你能负担得起这方面的数据库,最好的方法应该是这样

  • 在发送确认电子邮件之前,请创建一个以会话ID为密钥的记录。您在数据库中存储了电子邮件地址、过期日期和所有其他信息。在确认链接中对会话ID进行编码。您还应该包括如何在电子邮件禁止热链接时手动输入确认代码的说明。短会话ID应用于手动输入
  • 当用户单击链接或手动输入会话ID时,转到数据库检索会话。如果电子邮件匹配,但未过期,则确认用户
  • 在其他一些应用程序中,我们不希望仅为此创建数据库,所以我们创建电子邮件地址的HMAC(秘密哈希),并将其用作确认秘密。在这种情况下,需要在链接中提供电子邮件

    HttpSession和Cookie无法工作,因为当用户在几天后单击确认链接时,它们可能会消失