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

先看业务流程图


  • 创建用户

  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插件对激活令牌进行单向加密:


                
  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值