如何要求一个唯一的登录链接?

时间:2012-11-17 00:32:12

标签: php

这就是我想要实现的目标:

我希望能够显示网站的主页。但是,所有这些主页都允许您输入电子邮件地址。然后它会向您发送一封电子邮件,其中包含一个唯一的链接,可以通过主页访问实际内容。它不需要任何实际的帐户或登录,只需拥有唯一的电子邮件链接。 (它也只会发送到.edu地址)。

实现这一目标的最佳方式是什么?

1 个答案:

答案 0 :(得分:2)

  1. 创建一个将用户名映射到密钥代码的SQL表。
  2. 提交首页表单后,生成随机的16字母A-Z,a-z,0-9个字符串。
  3. 将SQL行插入到将用户名映射到16个字母字符串的表中(使用PDO)。
  4. 通过电子邮件向用户发送一个链接,例如example.org/login/email@email.com/rAnDomStRiNgHeRe
  5. 使用ModRewrite设置.htaccess将example.org/login/([^/])+/([A-Za-z0-9])+映射到example.org/verify-login.php?email=$1 &安培;代码= $ 16
  6. 创建verify-login.php,它使用PDO在数据库中查询表中任何条目,并将给定电子邮件映射到给定代码。
  7. 如果匹配,请将用户带到实际内容。
  8. 如果您需要保护内容,请使用电子邮件和密钥存储Cookie,然后执行数据库查找,确保Cookie电子邮件和Cookie密钥在数据库中相互映射。必须在每个要保护的单页上进行此检查。
  9. 作为旁注,最好对电子邮件:key进行base64_encode编码并在URL中使用它。相应地更新.htaccess。然后,在verify-login.php中,解码base64字符串,将其拆分为电子邮件和密钥,然后执行检查。