发送找回密码邮件(个人笔记)

来源:互联网 发布:java工程师等级 编辑:程序博客网 时间:2024/05/01 08:02

发送找回密码邮件这个功能,在别的网站上经常用到,乍看上去,好像 没什么难度的样子,但是我做的时候还是考虑了一些问题,因为见得少,所以主要 考虑的还是如果该链接泄露了咋办。

我用了3个字段去记录这个过程:

status: 0:正常状态; 1:密码重置中。

opTime: 发送重置邮件的时间。

ip: 记录请求操作时的用户ip。


1.当用户忘记密码时,需要输入在网站注册时的用户名和邮箱,提交后,后台判断该用户是否存在,如果存在,将status=1;同时记录当前时间和ip;向用户发送激活邮件,

url格式类似:http://demo.com/findpwd?v=userName&v2=time    (userName和time都是经过BASE64编码过)


2.用户登录邮箱,点击重置链接,网站后台将通过链接中的userName和time的值去进行判断。通过userName判断该用户是否存在,如果存在,查看该用户的status是不是1,然后对比三个时间,一个是数据库中的opTime,一个是系统当前时间,一个是url传过来的time,最后,对比当前用户ip和数据库中存储的ip是否相同,通过这三个条件,保证该链接没有被盗用。




原创粉丝点击