基于Url链接的登录


Url link based login

我正在使用php开发一个在线考试系统,我希望加入一个功能,以便任何打算参加考试的人都能提供一封电子邮件,并向他们的电子邮件发送一个唯一的url链接。点击链接后,用户应登录系统并可以进行测试。url链接应在考试结束后过期,或者换句话说,链接应在首次单击后仅在固定的时间内处于活动状态。

在这种情况下,我不要求用户提供任何详细信息,除了他的电子邮件。

使用类似md5或sha1或类似的哈希。当他们填写表格时,你会将他们的记录保存到一个带有记录id和地址的数据库中。链接应该有他们的记录id的散列,这样当他们点击链接时,你就可以很容易地查找记录:

$link = "http://somedomain.com/test?id=" . md5($recordid);

然后在处理链接时:

$hashId = $_REQUEST['id'];
$sql = "SELECT * FROM users WHERE MD5(id) = '$hashId'";