电子邮件中的激活码如何制作

Edo*_*ooo 1 php cakephp

我需要为我的用户制作激活码.当用户注册时,我的php脚本会向用户发送电子邮件,我不知道如何实现激活码或激活链接.我不知道这个的逻辑

Geo*_*ins 11

这是一个分为四个步骤的过程:

  1. 创建激活码
  2. 将其存储在数据库中
  3. 通过指向验证脚本的链接将代码通过电子邮件发送给用户
  4. 使用存储在数据库中的值检查用户在验证脚本中输入的代码.

有关示例实现,请参阅:

http://www.learnphponline.com/scripts/email-activation-for-php-forms


Maj*_*our 8

  1. 在注册时创建一个随机字符串$user_rand;
  2. 将随机字符串存储usersactivation_secret列中的表中,将active列设置为0
  3. 对随机字符串进行哈希并将电子邮件发送到用户提供的电子邮件地址,并包含指向激活页面的链接,并将哈希作为参数包含在内.例如http://host.com/activate.php?activation_code=sfer3423ste&username=john
  4. activatate.php提取usernameactivation code(你发送的哈希)
  5. 查询users表中包含active=0user=john,返回值的记录activation_secrete
  6. 散列activation_secrete并比较activation code来自url 的散列,如果它们匹配,则应验证用户(将active列设置为1),如果不匹配,则通知用户激活码无法识别.

您可以在此基础上构建并使其健壮并添加异常处理.例如,您还可以设置激活分泌的生命周期等等.

  • 如果它是一个随机生成的字符串,为什么必须进行哈希处理? (4认同)