1、最近开发一个系统,有个需求就是,忘记密码后通过邮箱找回。现在的系统在注册的时候都会强制输入邮箱,其一目的就是 通过邮件绑定找回,可以进行密码找回。通过java发送邮件的功能我就不说了,重点讲找回密码。 2、参考别人的思路:发送邮件→请求邮件里的URL→验证url→{验证成功修改密码,不成功跳转到失败页面} 重点就是如何生成这个url和如何解析这个url. 3、加密能防止伪造攻击,一次url只能验证一次,并且绑定了用户。生成url: 可以用UUID生成随机密钥。 数字签名 = MD5(用户名+'$'+过期时间+‘$’+密钥key) url example: http://localhost:8080/user/reset_password?sid=D622D6A23FBF86FFE696B593D55351A54AEAEA77&userName=test4 生成过期时间,生成数字签名,生成url,发送邮件. saveOrUpdate(用户名,密钥key,过期时间) 以下为springMvc代码
找回链接已经发到邮箱了。进入邮箱点开链接 以下为链接检验代码,验证通过 跳转到修改密码界面,否则跳转到失败界面
补充1:Timestamp类型对象在保存到数据的时候 毫秒精度会丢失。比如:2013-10-08 10:29:10.234 存到mysql数据库的时候 变成 2013-10-08 10:29:10.0。时间变得不相同了,sid 匹配的时候不会相等。 所以我做了忽略精度的操作。 补充2:解决linux下面title中文乱码
|
|
来自: 昵称22326956 > 《邮件找回密码功能》