如何在注册期间验证电子邮件?

时间:2012-06-14 07:42:56

标签: java email struts2 registration verification

我正在开发一个使用struts2和hibernate作为后端的网站。在您注册后的许多网站中,都会向您的电子邮件发送一个链接,点击该链接后注册即告完成。我想在我的网站上使用此功能,但我不知道如何做到这一点,这是如何工作的?我需要一些例子来做这件事....

4 个答案:

答案 0 :(得分:2)

我从来没有搞过struts,但基本上你可以做的就是发送一个带有指向特定页面的链接的电子邮件。当用户注册您的网站时,除其他外,您可以保存用户的电子邮件地址,注册的时间戳以及密钥(例如,可以是电子邮件和密码的哈希值)。

然后构建链接并在查询字符串中包含电子邮件和密钥。用户单击链接后,在页面中检查用户是否仍在某个时间范围内(可选),并且给出的电子邮件与给定的密钥(您已存储在数据库中)匹配。

如果电子邮件和密钥匹配,则激活帐户。

答案 1 :(得分:1)

这是一个广泛的问题,但我正在回答基于验证的问题 1.您需要一个表单示例 /signup.jsp 的注册页面 2.在基本字段和电子邮件验证之后,为此电子邮件生成代码 xyzcode
3.使用带有指向链接验证页面链接的邮件服务器向用户电子邮件发送电子邮件 /validate.jsp?code=xyzcode (邮件服务器设置和发送电子邮件超出了答案的范围)
4.在validate.jsp上检查代码并使用此代码验证任何电子邮件,否则会给出相应的错误消息。

答案 2 :(得分:0)

有多种方法,但我建议一种方法很简单,按照标准。

In user table add extra column as Status [可以将两个值设置为无效或有效]

create one more table(emailauthentication) where columns will be (key,emaiId)..

现在你要做的就是在用户点击提交注册数据之后...生成动态密钥..可以是时间戳+ emailId(或任何动态和唯一的),并在用户表中创建状态为非活动状态的记录并创建使用此生成的密钥记录在emailauthentication表中,并在创建记录后发送电子邮件。生成一个可能类似的URL

<a href="doAuthenticationForUser?authenticationId='dynamicKey'"/>Click to authenticate</a>

现在,当用户点击此网址时,请在操作类或此身份验证服务中找到emailId,并将列状态设置为活动状态。

答案 3 :(得分:0)

回答这个问题确实很重要 我知道一个链接,其中包含 BalusC 的最佳答案 这是链接:better answer
我在我的项目中实现了。我希望这个链接可以帮助别人 谢谢你的阅读。