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

WBOY
WBOYオリジナル
2016-06-06 20:42:431237ブラウズ

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

回复内容:

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

整个流程:

  • 注册时要求每个用户使用唯一的邮箱,注册后向用户的邮箱发一封邮件
  • 找回密码时要求用户填写邮箱地址,提示用户如果不记得地址请在邮箱中搜索
  • 找回密码功能限制每帐号每天只能使用三次(只能发三次邮件), 使用缓存来完成这个计数
  • 找回密码时向缓存中写入一个随机的字符串作为 Token, 有效期为一天,向用户的邮箱发送包含 Token 的链接
  • 用户从链接点回来先验证 Token 的有效性,然后提示填写新密码,然后将新密码和 Token 一起提交给后端完成修改密码的操作
  • 删除掉 Token 的缓存
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。