公司做项目,有用到注册,登录,密码找回等功能,以前自己写的论坛也实现了邮件密码找回,不过比较简单,直接生成随机密码,把新密码发送到用户邮箱.比较不安全,要实现一般网站的用链接找回的功能.
对链接的要求有如下:
针对这3方面的要求,设计url格式,/resetpassword/?sid=md5加密后的字符串&user;=用户名&expires;=过期时间时间戳
.在user表上增加字段secret_key
用于保存加密的密钥.
加密过程,生成sid:
/forgot/
表单输入邮件地址,时后台校验用户是否存在,如果存在则,通过uuid生成随机字符串secret_key
更新用户信息;username-expires-secret_key
生成sid.解密验证:
/resetpassword/
的GET
请求后,先验证参数是否正确;username-expires-secret_key
与sid对比是否一致,如一致才会返回重置密码表单;POST
请求提交地址与GET
请求一致,必须再次验证sid.