通过电子邮件激活用户

时间:2011-07-30 17:31:56

标签: javascript asp.net http

我对一个服务激活用户的方式感兴趣。场景是我填写表格并发送。然后有一条消息,如果我想继续激活过程,我应该检查我的电子邮件。在电子邮件中有一条消息,如激活链接,如:www.theservice.com

我想知道他们怎么知道这是我:)。

我知道发送的链接包含用户登录的哈希值,以便服务器知道哪个用户输入并激活那个用户。

你知道怎么做吗?

编辑:

根据答案:奇怪的是我收到的链接中没有令牌。链接只是www.myservice.com,尽管如此,该服务仍然可以激活我的帐户。

唯一可以想象它是如何运作的想法是cookie。

3 个答案:

答案 0 :(得分:2)

您可以生成哈希并将其与user_id一起存储在数据库中,并向用户的电子邮件地址发送一封电子邮件,其中包含指向您网站的链接,并在网址中添加& hash = yourHashHere等内容。在您的站点上,检查数据库中是否存在哈希,如果是,则激活数据库中的用户。您还可以添加时间戳,以便验证激活链接是否已过期。

答案 1 :(得分:1)

邮件消息可能包含带有表单的html以及用于其内容的隐​​藏字段。当用户点击在适当的服务器上提交的链接表单时,其中检索隐藏字段值以识别用户ID并跟踪帐户激活。

function doSubmit() {
        document.forms["form1"].submit();
    }

<form id="form1" action="www.theservice.com" method="post">
    <a href="#" onclick="doSubmit()">Activate</a>
    <input type="hidden" name="userIdForActivating" value="userId" />
</form>

答案 2 :(得分:0)

您要做的是创建使用用户登录详细信息保存的用户激活令牌。您还有用户电子邮件,即令牌发送到。 电子邮件实际上就像是

http://yourpage.com/activation/token

在你有链接的代码之后,你会检测到令牌是否存在,如果不存在,你将会提示用户,通常的组合是电子邮件和令牌

在此处查看更多内容:http://msdn.microsoft.com/en-us/library/yh26yfzy.aspx