请稍等 ...
×

采纳答案成功!

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

code验证有问题

无论验证码输什么 只要是4位 都能注册成功 

https://img1.sycdn.imooc.com//szimg/5bd95d690001862c03430181.jpg

代码都是复制源码的。

打印服务端返回的msg,返回‘注册成功’

https://img1.sycdn.imooc.com//szimg/5bd95d870001887112500729.jpg

解决方法:

这段注册成功的代码应该在判断code相等的情况下执行,不然无法判断验证码为空,或者验证码错误。

  if (code) {
    const saveCode = await Store.hget(`nodemail:${username}`, 'code')
    const saveExpire = await Store.hget(`nodemail:${username}`, 'expire')
    if (code === saveCode) {
      if (new Date().getTime() - saveExpire > 0) {
        ctx.body = {
          code: -1,
          msg: '验证码已过期,请重新尝试'
        }
        return
      }
      // 判断注册成功与否应该放在这里
      // !!!!!!!!!!!!!!!!!!!!!!!!!!!!!
      let user = await User.find({username})
      if (user.length) {
        ctx.body = {
          code: -1,
          msg: '已被注册'
        }
        return
      }
      let nuser = await User.create({username, password, email})
      if (nuser) {
        let res = await axios.post('/users/signin', {username, password})
        if (res.data && res.data.code === 0) {
          ctx.body = {
            code: 0,
            msg: '注册成功',
            user: res.data.user
          }
        } else {
          ctx.body = {
            code: -1,
            msg: 'error'
          }
        }
      } else {
        ctx.body = {
          code: -1,
          msg: '注册失败'
        }
      }
    } else {
      ctx.body = {
        code: -1,
        msg: '请填写正确的验证码'
      }
    }
  } else {
    ctx.body = {
      code: -1,
      msg: '请填写验证码'
    }
  }


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

2回答

Jam_Lee 2020-01-18 15:52:11

感谢楼主,这个问题困扰了我半天,总算解决了

0 回复 有任何疑惑可以回复我~
快乐动起来呀 2018-10-31 22:09:20

每次验证码发送出去都会保存,验证的时候要去对比,你检查下存储的对吗,取出来的和存储的与发送的是否一致,调试下看看

0 回复 有任何疑惑可以回复我~
  • 提问者 xxxxxbilibli #1
    老师,我觉得是您那个验证注册是否成功的代码写错位置了。应该写在判断code相等时里面,今天问了几个同学都是这样。
    要是不写在里面,无论你code怎么判断,依旧会执行注册成功那个代码
    回复 有任何疑惑可以回复我~ 2018-10-31 23:14:36
  • 提问者 xxxxxbilibli #2
    源码 app/server/interface/users.js,第39~67行,是否应该写在第26到27行之间呢?麻烦你看下吧。
    回复 有任何疑惑可以回复我~ 2018-10-31 23:28:07
问题已解决,确定采纳
还有疑问,暂不采纳
意见反馈 帮助中心 APP下载
官方微信