开发者社区> 问答> 正文

【web求助"找回密码?"功能实现】新浪邮箱找密码怎么实现?:报错

点击发送验证邮件,新浪会给你发送一封邮件,里面有个验证码,你输入验证码之后,就可以进行重置新的密码了,而且这个验证码在30分钟之内是有效的。

我的思路是将这个验证码随机产生,然后存储到session中去,然后发送邮件,最后输入的时候在和这里的进行比对,感觉和验证码的原理差不多啊!

展开
收起
kun坤 2020-06-05 22:40:43 908 0
1 条回答
写回答
取消 提交回答
  • 技术小白一枚,说说自己的看法,见笑。

    服务器有一个临时表,保存用户对应的重置密码申请,有唯一标识(用户名或邮箱)。根据唯一标识查询对应用户名中是否有30分钟内,未使用的重置密码申请验证码(在发送时,随机生成,保存临时表并发送邮件)。然后在确认验证码的时候,去后台验证一下就OK了。

    ######您好,谢谢您的回答,但是还是有点不解需要您指点,就是说怎么判断是30分钟内呢?数据库表怎么创建呢?而且还会让他过期以后可以删除呢?本人只创建过那种简单的表,没有创建过能够过期删除的表,望不吝赐教!######回复 @张贵成 :您好,谢谢您的回答,但是还是有点不解需要您指点,就是说怎么判断是30分钟内呢?数据库表怎么创建呢?而且还会让他过期以后可以删除呢?本人只创建过那种简单的表,没有创建过能够过期删除的表,望不吝赐教!######回复 @leo108 : 我的临时表指的是一个普通表,只不过里面的数据都是临时的,过期以后可以删除的内种。里面只需要缓存一下可用的验证码便可!######就是普通表,不要加“临时”######字段大致有主键,验证码,对应的账号(或唯一的邮箱),生成时间(每次判断当前时间是否超过30分钟,超过自动删除本记录)。然后再加一个后台任务定时(或是每天)清除垃圾数据,这样就OK了哇。还有什么木有说到的咩?######使用的数据库是Mysql数据库。######

    两个字段 生成的验证码 和 生成的时间,如果验证就匹配。

    如果正常登陆就删除这两个字段。

    ######回复 @双人鱼XKQ : 如果是字段就为空,如果是一个数据,就删除。######如果验证就匹配。 如果正常登陆就删除这两个字段。 这两句话有点不懂,望详细解释一下,谢谢!######

    放在数据库里,在数据库里弄


    ######回复 @双人鱼XKQ : 邮箱、验证码、失效时间放在数据库里,用户输入后再从数据库里比对啊######回复 @hanzhankang : 小白一个,望耐心指点,感激不尽!定虚心求教。说个详细的思路,谢谢!###### @双人鱼XKQ 需要啥字段设计啊,这个很简单啊######我知道是放在数据库里面弄,具体的是在数据库里面怎么弄?######邮箱,验证码,生成时间。来验证是,用当前时间和生成时间对比,看时间是否超过30分钟,验证码对不对,对就更改验证信息为通过,并且删除验证的数据。大概简单的就这样。还有可以用k v缓存,就不需要用数据库######放在缓存中就好了,设置缓存时间 ,就可以了。
    ######

    那种用验证码可以,用一次性url也可以的。

    不知道一次性url+验证码会不会更好点?

    ######点击找回密码,后台生成随机字符串,以邮箱为key,随机字符串为value存到memcache,memcache失效时间设置为30分钟,此时异步发送邮件,邮件地址中包含邮箱和随机字符串。当访问邮箱中的url时,我们去校验是否匹配,如果匹配,则可以跳转到修改密码页面。######

    引用来自“张贵成”的评论

    技术小白一枚,说说自己的看法,见笑。

    服务器有一个临时表,保存用户对应的重置密码申请,有唯一标识(用户名或邮箱)。根据唯一标识查询对应用户名中是否有30分钟内,未使用的重置密码申请验证码(在发送时,随机生成,保存临时表并发送邮件)。然后在确认验证码的时候,去后台验证一下就OK了。

    这个简单呀,临时表里面有个字段就是生成时间,然后用户界面输入验证码点击提交的时候,根据当前时间与临时表内的生成时间做对比,如果超过30分钟,给予提示,未超过30分钟,通过验证。至于过期删除,这个只能人为触发,例如每隔半小时去检索一下临时表的生成时间+30分钟<当前时间的,如果有则删除。表内的字段我能想到的大致有几个:主键、用户ID、验证码、生成时间、状态(用于标注该条记录是否已使用,如果是设计的用完一次直接删除的话,就不用这个字段了)、还有一些其他的,例如邮箱、申请人IP这些不重要的。
    2020-06-08 11:31:13
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
Web应用系统性能优化 立即下载
高性能Web架构之缓存体系 立即下载
PWA:移动Web的现在与未来 立即下载