我正在开发一个使用 struts2 和 hibernate 作为后端的网站。在您注册后的许多网站中,一个链接将发送到您的电子邮件中,点击后即表示注册完成。我想在我的网站上使用此功能,但我不知道如何执行此操作以及它是如何工作的?我需要一些例子来做到这一点....
4 回答
我从来没有弄乱过struts,但基本上你可以做的是发送一封电子邮件,其中包含指向特定页面的链接。当用户注册您的网站时,您可以保存用户的电子邮件地址、注册时间戳以及密钥(例如,可以是电子邮件和密码的哈希值)。
然后,您构建链接并在查询字符串中包含电子邮件和密钥。一旦用户单击链接,在您的页面中,您会检查用户是否仍在某个时间范围内(可选)并且给定的电子邮件与给定的键匹配(您已存储在数据库中)。
如果电子邮件和密钥匹配,则激活帐户。
这是一个广泛的问题,但我根据验证回答
1. 您需要一个带有表单示例/signup.jsp
的注册页面
2. 在基本字段和电子邮件验证之后,为此电子邮件生成一个代码xyzcode
,
3. 向用户电子邮件发送电子邮件,使用带有链接验证页面链接的邮件服务器,例如
/validate.jsp?code=xyzcode(邮件服务器设置和发送电子邮件超出了答案的范围)
4. 在 validate.jsp 检查代码并使用此验证任何电子邮件代码否则会给出相应的错误消息。
确实,回答这个问题很大。我知道BalusC
给出的最佳答案的
链接是链接:更好的答案。
我已经在我的项目中实现了。我希望此链接对其他人有所帮助。
谢谢阅读。
有多种方法,但我建议一种简单且符合标准的方法。
In user table
add extra column as Status
[可以取两个值,非活动或活动]
create one more table(emailauthentication) where columns will be (key,emaiId)..
现在你要做的是在用户单击提交注册数据后...生成一个动态密钥..可以是时间戳+emailId(或任何动态和唯一的)并在用户表中创建状态为非活动的记录并在电子邮件身份验证中创建记录具有此生成的密钥和 emaiId..now 的表在创建记录后生成一个 URL,可能类似于
<a href="doAuthenticationForUser?authenticationId='dynamicKey'"/>Click to authenticate</a>
现在,当用户单击此 URL 时,然后在此 authenticationId 的操作类或服务中找到 emailId 并将列状态设为活动..