>백엔드 개발 >PHP 튜토리얼 >如何设计邮件重设密码功能

如何设计邮件重设密码功能

WBOY
WBOY원래의
2016-06-06 20:42:431237검색

一个很常见的功能,用户忘记密码了,通过输入之前注册的邮件,我们向用户的邮箱发一个链接以重设密码。用户名 + 随机字符串+过期时间,之后用md5加密一下,这样的设计是否可行?如果用户没有点击链接,已过期的标识符要如何清除?

回复内容:

一个很常见的功能,用户忘记密码了,通过输入之前注册的邮件,我们向用户的邮箱发一个链接以重设密码。用户名 + 随机字符串+过期时间,之后用md5加密一下,这样的设计是否可行?如果用户没有点击链接,已过期的标识符要如何清除?

整个流程:

  • 注册时要求每个用户使用唯一的邮箱,注册后向用户的邮箱发一封邮件
  • 找回密码时要求用户填写邮箱地址,提示用户如果不记得地址请在邮箱中搜索
  • 找回密码功能限制每帐号每天只能使用三次(只能发三次邮件), 使用缓存来完成这个计数
  • 找回密码时向缓存中写入一个随机的字符串作为 Token, 有效期为一天,向用户的邮箱发送包含 Token 的链接
  • 用户从链接点回来先验证 Token 的有效性,然后提示填写新密码,然后将新密码和 Token 一起提交给后端完成修改密码的操作
  • 删除掉 Token 的缓存
성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.