小程序云开发实时验证码功能

马上要开学了,作为学校协会程序部的老部长,要为协会做一个会员注册系统。之前的注册系统有bug,也是我的上上界部长的作品了。所以我也没深入研究,干脆自己写个小程序。

一天时间,写完了包括会员注册、会员上课签到、将信息导出Excel表格等多个功能。

这篇文章呢,就讲一下,会员在注册的时候,一个实时验证码。
验证码的作用是为了防止学生乱注册,是报名现场在管理端实时显示的一个验证码。

大体思路: 管理端能够开放注册和关闭注册,这个主要是判断数据库里的一个集合,有个字段为Code,Code为零的时候是未开启注册,为非零时开启注册。(非零是一个随机的六位数字)

在这里插入图片描述
管理端开启注册通道,直接修改Code值为一个随机的六位数字。关闭注册通道修改Code为零。

然后在注册页面实时监测数据库Code值的变化,如果为0就将注册按钮设为不可用,否则可用。

当一个学生注册完信息之后,紧接着修改Code,管理端Code的值也是实时监测改变。

相信,我上面说了这段话之后,很多同学就应该明白如何写代码了。下面我列出一些核心代码,界面代码需要你自己写哦~

开启注册的代码:

 wx.showModal({
    
    
    title:'提示',
     content:'确定开启会员注册吗?',
     success:res=>{
    
    
         if(res.confirm){
    
    
             const randomNum = Math.floor(Math.random()*1000000)
             db.collection('registerCode').doc(this.data.regDoc).update({
    
    
                 data:{
    
    
                     Code:randomNum
                 },
                 success:res=>{
    
    
                     wx.showToast({
    
    
                       title: '已开启注册',
                       icon:'success'
                     })
                 }
             })
         }
     }
   })

在页面中实时监听验证码的变化,及时更新:

db.collection('registerCode').doc(this.data.regDoc).watch({
    
    
                onChange: snapshot=> {
    
    
                    if(snapshot.docChanges[0].doc.Code==0){
    
    
                        this.setData({
    
    codeText:'暂未开启注册',isopen:false})
                    }else{
    
    
                        this.setData({
    
    
                            codeText:snapshot.docChanges[0].doc.Code,
                            isopen:true
                        })
                    }
                  },
                  onError: err=> {
    
    
                    console.error('the watch closed because of error', err)
                  }
            })

关闭注册:

wx.showModal({
    
    
  title:'提示',
  content:'确定关闭注册吗?',
  success:res=>{
    
    
      if(res.confirm){
    
    
          db.collection('registerCode').doc(this.data.regDoc).update({
    
    
              data:{
    
    
                  Code:0
              },
              success:res=>{
    
    
                  wx.showToast({
    
    
                    title: '已关闭注册',
                    icon:'success'
                  })
              }
          })
      }
  }
})

当一个学生注册完信息之后立即更新验证码:

 const randomNum = Math.floor(Math.random()*1000000)
 db.collection('registerCode').doc(this.data.doc).update({
    
    
     data:{
    
    
         Code:randomNum
     }
 })

学生注册的时候,输入的验证码就与这个Code进行对比,正确就录入信息,相反就提示错误。

好了,上面的大致思路就是这些,总的来说还是很简单的。有问题可以下方留言问我哦~

猜你喜欢

转载自blog.csdn.net/weixin_43729943/article/details/108204673
今日推荐