是否有一种方法能够通过包含url参数的电子邮件发送链接,该参数验证服务器发送的链接,并验证在令牌生成后的特定时间段内单击链接?
您可以执行以下步骤:
- 为来自用户的每个请求生成一个随机的、唯一的密钥(或者为您想要向服务器发送访问权限的每个用户)
- 保存密钥、用户的电子邮件(或登录)、令牌生成的时间;
- 将密钥发送给用户,因此他可以通过链接 访问您的服务器。
当用户访问服务器时,您:
- 验证该链接是否以前使用过(如果您希望您的链接是一次性访问的可能性)
- 验证令牌何时生成并计算它是否在允许的时间段内(如果没有过期)
- 允许用户访问-做任何你想做的
- 标记令牌为已使用,如果你想让它被使用一次。
您只需要一个表来存储令牌、电子邮件地址、生成日期、激活日期
当您生成电子邮件时,您存储令牌电子邮件&生成日期/时间
在电子邮件中放置一个url,其中包含到您的网页的链接和令牌&电子邮件。例句:
http://mysite.co.uk/activate.aspx?token=jhsdjsdslkwww7474&email=blah@blah.com
网页然后必须找到令牌和电子邮件地址检查日期和更新激活日期,如果它是有效的。
我将在分布式缓存中存储一个随机UUID(对于负载均衡的多节点系统),并按照woliveirajr上面提到的方法进行操作。您还需要确保用户不会滥用您的系统,因此在Load-balancer (F5)中设置一些配置来检测人为请求与编程请求将有助于引入一定程度的保护。
如果一个系统被开发为生成唯一密钥,则通过电子邮件发送这些密钥,并接受来自具有这些密钥的电子邮件的http请求。是的。