通过电子邮件链接验证用户

时间:2011-07-18 16:21:51

标签: php codeigniter authentication

我对用户身份验证很新,但在PHP中构建了一些标准的用户身份验证过程。为了达到这一点,我的任务是构建一个系统,我们可以向用户发送大量电子邮件,包括用户可以点击并直接登录系统的链接。

我可能会使用codeigniter来构建它。如果有人可以就一个程序提供一些方向或一些关于此的教程,那将非常有帮助。注意:如果它们不是特定于codeigniter的,那就完全没问题了。

2 个答案:

答案 0 :(得分:0)

最简单的方法是根据用户名和某种盐生成哈希,然后在电子邮件中添加一个类似http://some.url/loggedin.php?email=<email>&hash=<hash>的链接,这样就可以使用电子邮件查找可以轻松地比较db中的记录和哈希值。

希望有所帮助

答案 1 :(得分:0)

之前我曾经做过它!我有一个包含以下字段的成员表:

  `username` varchar(20) NOT NULL,
  `password` varchar(255) NOT NULL,
  `email` varchar(255) NOT NULL,
  `firstname` varchar(255) NOT NULL,
  `lastname` varchar(255) NOT NULL,
  `birthday` int(11) NOT NULL,
  `status` varchar(20) NOT NULL,
  `regDate` int(11) NOT NULL,
  `lastLogin` int(11) NOT NULL,
  PRIMARY KEY (`username`)

当客户尝试注册时,您必须提供他们的usernamepasswordemailfirstnamelastnamebirthday 然后在表格中插入一条记录!但是将状态设置为'pending'并将带有哈希用户名的电子邮件发送到包含此类网址的电子邮件http://www.mysite.com/signup.php?id=XXXXXXXXXXXXXXXX(hashed username)

您必须阻止登录其状态为'penidng'的用户

当用户回来但发送到电子邮件的她/他的网址检查您的桌面是否已经验证是否可以更新状态,例如“正常”,您可以在将来使用状态来阻止用户和设置状态如果你想阻止一个用户阻止