点击发送验证邮件,新浪会给你发送一封邮件,里面有个验证码,你输入验证码之后,就可以进行重置新的密码了,而且这个验证码在30分钟之内是有效的。
技术小白一枚,说说自己的看法,见笑。
服务器有一个临时表,保存用户对应的重置密码申请,有唯一标识(用户名或邮箱)。根据唯一标识查询对应用户名中是否有30分钟内,未使用的重置密码申请验证码(在发送时,随机生成,保存临时表并发送邮件)。然后在确认验证码的时候,去后台验证一下就OK了。
######您好,谢谢您的回答,但是还是有点不解需要您指点,就是说怎么判断是30分钟内呢?数据库表怎么创建呢?而且还会让他过期以后可以删除呢?本人只创建过那种简单的表,没有创建过能够过期删除的表,望不吝赐教!######回复 @张贵成 :您好,谢谢您的回答,但是还是有点不解需要您指点,就是说怎么判断是30分钟内呢?数据库表怎么创建呢?而且还会让他过期以后可以删除呢?本人只创建过那种简单的表,没有创建过能够过期删除的表,望不吝赐教!######回复 @leo108 : 我的临时表指的是一个普通表,只不过里面的数据都是临时的,过期以后可以删除的内种。里面只需要缓存一下可用的验证码便可!######就是普通表,不要加“临时”######字段大致有主键,验证码,对应的账号(或唯一的邮箱),生成时间(每次判断当前时间是否超过30分钟,超过自动删除本记录)。然后再加一个后台任务定时(或是每天)清除垃圾数据,这样就OK了哇。还有什么木有说到的咩?######使用的数据库是Mysql数据库。######两个字段 生成的验证码 和 生成的时间,如果验证就匹配。
如果正常登陆就删除这两个字段。
######回复 @双人鱼XKQ : 如果是字段就为空,如果是一个数据,就删除。######如果验证就匹配。 如果正常登陆就删除这两个字段。 这两句话有点不懂,望详细解释一下,谢谢!######放在数据库里,在数据库里弄
那种用验证码可以,用一次性url也可以的。
不知道一次性url+验证码会不会更好点?
######点击找回密码,后台生成随机字符串,以邮箱为key,随机字符串为value存到memcache,memcache失效时间设置为30分钟,此时异步发送邮件,邮件地址中包含邮箱和随机字符串。当访问邮箱中的url时,我们去校验是否匹配,如果匹配,则可以跳转到修改密码页面。######技术小白一枚,说说自己的看法,见笑。
服务器有一个临时表,保存用户对应的重置密码申请,有唯一标识(用户名或邮箱)。根据唯一标识查询对应用户名中是否有30分钟内,未使用的重置密码申请验证码(在发送时,随机生成,保存临时表并发送邮件)。然后在确认验证码的时候,去后台验证一下就OK了。
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。