请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

老师,感觉源码里有好几个坑

老师,在注册这块,感觉源码里有好几个坑,一些小的细节坑,调试好久…
喜欢老师的课程,不过建议源码的部分还是要严谨一些哈,不然在学习过程中出错了对照源码还错就会费比较多的时间。而且如果没有调试工具进入后端进行断点调试的话就更难了
还是要再次谢谢老师!

正在回答 回答被采纳积分+3

2回答

fengyunzhu 2019-10-15 14:48:55

时间写错是小问题,我感觉逻辑上也有问题,可能限于是课程,所以没做这么严格的要求。

其实后端不应该用过期时间限制用户获取验证码的,即使验证码没过期,用户也应该可以获取新的验证码,只在前端限制用户每分钟获取一次,验证码的过期时间可能是十多分钟,很少会有一分钟后过期的(短信验证码一般为5-10分钟过期,邮箱相应应该更长一些,考虑到用户需要登录邮箱等)。

只不过课程中老师设置的限制时间和过期时间都为1分钟,逻辑上可以,但是如果我把验证码过期时间设置为5分钟,前端限制发送频率为1分钟,那1分钟之后我还是无法获取新的验证码,只能等5分钟。


0 回复 有任何疑惑可以回复我~
快乐动起来呀 2019-10-11 22:24:07

同学,可以具体一些吗,比如哪些地方有坑,我看看怎么调整一下,感谢

0 回复 有任何疑惑可以回复我~
  • 提问者 AKhui #1
    嗯嗯,谢谢老师。
    有1个地方是在数据库配置的时候,过期时间1分钟,不过这个好像是设成了1小时:
    get expire(){
          return ()=>{
            return new Date().getTime()+60*60*1000
          }
        }
    还有就是在注册接口里头,
     if (code === saveCode) {
          if (new Date().getTime() - saveExpire > 0) {
            ctx.body = {
              code: -1,
              msg: '验证码已过期,请重新尝试'
            }
            return false
          }
        } else {
          ctx.body = {
            code: -1,
            msg: '请填写正确的验证码'
          }
        }
      } else {
        ctx.body = {
          code: -1,
          msg: '请填写验证码'
        }
      }
    
    验证码填写错误和验证码没有填写的逻辑里面没有写return 语句,就会继续执行下面的创建用户。
    再次谢谢老师!
    回复 有任何疑惑可以回复我~ 2019-10-12 10:46:13
  • 我补充一下我遇到的吧,只要是过了users/verify接口,即点击获取验证码之后(并没有点注册),你再使用同样的昵称和邮箱就会显示验证请求过于频繁,猜测是过期时间那出了问题。
    回复 有任何疑惑可以回复我~ 2020-03-10 22:26:27
  • 快乐动起来呀 回复 提问者 AKhui #3
    感谢反馈,我们想办法调整下
    回复 有任何疑惑可以回复我~ 2020-03-10 23:16:57
问题已解决,确定采纳
还有疑问,暂不采纳
意见反馈 帮助中心 APP下载
官方微信