rails中用户激活和密码重设

只是记录一下思路,具体实现可参考rails tutorial第10章节,非常详细。
用户激活

  1. 在注册的时候,随机生成一个唯一的token
  2. 然后根据token生成一个加密的字符串存储在数据库中activation_digest
  3. 同时生成一个链接(该链接中包含刚刚生成的token和用户的email),发送到用户的邮箱中。
  4. 当用户打开该链接时,判断链接中传过来的emailtoken是否正确,如果正确,则激活用户并登录。

密码重设

  1. 通过views,获得忘记登录密码的邮箱
  2. 随机生成一个token
  3. 根据token生成一个加密的字符串存储在数据库中reset_digest,同时还生成一个reset_sent_at时间,用来判断reset_digest的过期时间
  4. 生成一个链接(包含刚刚生成的token和用户的email),发送到用户的邮箱中。
  5. 用户打开链接后,得到一个重新输入密码的页面(该页面需要包含emailtoken的属性,以便后续的操作。因为token是公开的,所以可以显示在url中,email则可以通过hidden_tag_field来隐藏显示
  6. 用户提交后,判断两次密码是否都为空,判断emailtoken是否正确,判断用户是否是激活用户,再判断reset_diget是否过期。如果都正确,则密码重设成功。

你可能感兴趣的:(rails中用户激活和密码重设)