Rails中使用邮箱验证及激活用户

这篇博客详细介绍了在Rails应用中如何实现邮箱验证和用户激活的步骤,包括生成激活令牌、产生加密摘要、设置邮件收发人信息、创建邮件模板、发送邮件以及处理激活链接的过程。通过SecureRandom模块生成随机字符串作为激活令牌,并使用bcrypt进行加密存储。邮件发送后,用户点击链接,通过激活令牌与数据库中摘要的匹配完成用户激活。
摘要由CSDN通过智能技术生成

先看业务流程图


  • 创建用户

  1. 生成激活令牌
  2. 产生加密摘要
  3. 发送邮件
  4. 设置收发人信息
  5. 生成模板,保存激活令牌
  6. 发送邮件
  7. 验证邮箱
  8. 点击链接
  9. 激活用户

下面我们来一步步完成

  1. 生成激活令牌
    激活令牌即一串随机字符串,这个激活令牌会作为邮件中激活链接的用户id标识。至于为什么不直接用用户id,我想除了要尽可能少的暴露网站信息,大概也是不想让网站的用户数量暴露出去吧。总之我们接下来要做的就是在用户注册时生成一串随机的字符串,使其与该用户一一对应(激活令牌没有必要是唯一的,就像不同的用户可以有相同的密码)。幸运的是,Ruby标准库中的SecureRandom模块的urlsafe_base64方法刚好能满足我们的需求。
    $ rails console
    >> SecureRandom.urlsafe_base64
    => "G45xA_SvjMrr0edKuB5lnQ"

  2. 产生加密摘要
    加密摘要即将激活令牌单向加密后的字符串。就像表中每个用户存有一个单向加密的密码一样,加密后的激活令牌(加密摘要)也需要保存在用户表中。
    我们可以使用bcrypt插件对激活令牌进行单向加密:


                
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值