【问题标题】:How to create ConfirmationURL using a JavaMail / Servlet Mechanism?如何使用 JavaMail / Servlet 机制创建 ConfirmationURL?
【发布时间】:2010-11-20 19:21:48
【问题描述】:

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

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

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

快乐编程,

迈克

【问题讨论】:

    标签: tomcat servlets jakarta-mail confirmation-email


    【解决方案1】:

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

    1. 在您发送确认电子邮件之前,创建一条以会话 ID 作为键的记录。您将电子邮件地址、过期时间和所有其他信息存储在数据库中。在确认链接中对会话 ID 进行编码。您还应该包含有关在电子邮件禁止热链接时如何手动输入确认码的说明。短会话 ID 应用于手动输入。
    2. 当用户单击链接或手动输入会话 ID 时,转到数据库以检索会话。如果电子邮件匹配,但未过期,则确认用户。

    在其他一些应用程序中,我们不想为此创建数据库,因此我们创建了电子邮件地址的 HMAC(秘密哈希)并将其用作确认秘密。在这种情况下,需要在链接中提供电子邮件。

    HttpSession 和 cookie 不起作用,因为当用户在几天后点击确认链接时它们可能会消失。

    【讨论】:

      猜你喜欢
      • 2016-06-17
      • 1970-01-01
      • 1970-01-01
      • 2016-06-26
      • 1970-01-01
      • 2014-09-29
      • 2014-10-25
      • 2015-11-09
      • 1970-01-01
      相关资源
      最近更新 更多