重置密码

我们已经讲解完了,如果创建,注册用户,激活,修改,删除用户了,看似已经全了,但是我们还缺了一点

那就是为用户提供重置密码! 这个是一个网站必不可少的功能之一吧

我们重置密码,在 sentry 中分成 两步

1、发送 重置代码给用户
2、验证 重置代码,成功则修改密码

首先我们看 第一步

获取重置密码的代码

  1. try
  2. {
  3. // 根据 email 查找用户
  4. $user = Sentry::findUserByLogin('yccphp@163.com');
  5. // 获取重置代码
  6. $resetCode = $user->getResetPasswordCode();
  7. //你可以把 重置代码,通过 email 或者 短信 发送给用户
  8. }
  9. catch (Cartalyst\Sentry\Users\UserNotFoundException $e)
  10. {
  11. echo '用户不存在';
  12. }

哈哈,是不是和我们激活用户很像呢 ?

第二步,

验证重置代码

  1. try
  2. {
  3. // 查询用户
  4. $user = Sentry::findUserById(1);
  5. // 检查重置密码的代码是否有效
  6. if ($user->checkResetPasswordCode(重置代码))
  7. {
  8. // 重置用户密码
  9. if ($user->attemptResetPassword(重置密码,新密码))
  10. {
  11. // 密码重置通过
  12. }
  13. else
  14. {
  15. // 密码重置失败
  16. }
  17. }
  18. else
  19. {
  20. // 所提供的密码重置代码是无效的
  21. }
  22. }
  23. catch (Cartalyst\Sentry\Users\UserNotFoundException $e)
  24. {
  25. echo '用户不存在.';
  26. }

简单两步,重置密码,就如同简单两步实现激活用户,sentry 的魅力,就是体现在这里