beego邮箱随机码验证

程序开发中经常遇到一些需要登录验证的场合,这里简要介绍一下基于beego框架的邮箱随机码验证
先定义一个Map存放邮箱号及对应随机码

var captchaMap map[string]string

func Initialize() {
   captchaMap = make(map[string]string)

}

在models中定义返回结构,其中code 含义 1 成功 0 失败

type GeneralResp struct {
   Code  int         `json:"code"`
   Data  interface{} `json:"data"`
   Error string      `json:"error"`
}

一、邮箱验证

func (this *MainController) AddressVerify() {
   userAddress := this.Input().Get("userAddress")
   if userAddress != tools.CheckAddress(userAddress) { // 邮箱验证,验证邮箱是否存在
      this.Data["json"] = models.GeneralResp{Code: 0,Error:"userAddress is not right!"}
   } else {
      captchaValue := tools.CreateCaptcha() //生成随机验证码
      captchaMap[userAddress] = captchaValue
      err := sendMessage(models.SmtpRecv{To: []string{userAddress}, Body: captchaValue}) // 向验证邮箱发送验证码
      if err != nil {
         this.Data["json"] = models.GeneralResp{Code: 0, Error: err.Error()}
      } else {
         this.Data["json"] = models.GeneralResp{Code: 1}
      }
   }

   this.ServeJSON()
}

二、邮箱随机码验证

func (this *MainController) CaptchaVerify() {
   userAddress := this.Input().Get("userAddress")
   captchaValue := captchaMap[userAddress]

   if !strings.EqualFold(captchaValue, this.Input().Get("captcha")) {
      this.Data["json"] = models.GeneralResp{Code: 0}
   } else {
      delete(captchaMap, userAddress)
      this.Data["json"] = models.GeneralResp{Code: 1}
   }
   this.ServeJSON()
}

如有不对欢迎指正,相互学习,共同进步。

  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值