gin学习——邮箱发送验证码注册用户

qq邮箱-设置-账户

在这里插入图片描述

安装
go get -u github.com/jordan-wright/email
go get -u github.com/garyburd/redigo/redis

dao/user_dao.go

func SendEmailValidate(em []string) (string,error) {e:=email.NewEmail()e.From = fmt.Sprintf("发件人笔名 <发件人邮箱>")e.To = em// 生成6位随机验证码rnd := rand.New(rand.NewSource(time.Now().UnixNano()))vCode := fmt.Sprintf("%06v", rnd.Int31n(1000000))t := time.Now().Format("2006-01-02 15:04:05")//设置文件发送的内容content := fmt.Sprintf(`<div><div>尊敬的%s,您好!</div><div style="padding: 8px 40px 8px 50px;"><p>您于 %s 提交的邮箱验证,本次验证码为<u><strong>%s</strong></u>,为了保证账号安全,验证码有效期为5分钟。请确认为本人操作,切勿向他人泄露,感谢您的理解与使用。</p></div><div><p>此邮箱为系统邮箱,请勿回复。</p></div></div>`, em[0], t, vCode)e.Text = []byte(content)//设置服务器相关的配置err := e.Send("smtp.qq.com:25", smtp.PlainAuth("", "发件人邮箱", "发件人邮箱授权码", "smtp.qq.com"))return vCode,err
}

controller/user_controller.go

// GetValidateCode
// @Title GetValidateCode
// @Description  发送邮箱验证码 并存入redis(5分钟有效时间)
// @Author hyy 2022-03-05 18:18:47
// @Param c type description
func GetValidateCode(c *gin.Context) {// 获取目的邮箱em := []string{c.Param("email")}vCode, err := dao.SendEmailValidate(em)if err != nil {log.Println(err)c.JSON(http.StatusBadRequest, gin.H{"status":           400,"msg":              "验证码发送失败","ERROR-CONTROLLER": err.Error(),})return}// 验证码存入redis 并设置过期时间5分钟_, err = util.RedisCont.Do("set", "vCode", vCode)_, _ = util.RedisCont.Do("expire", "vCode", 300)if err != nil {log.Println(err.Error())c.JSON(http.StatusBadRequest, gin.H{"status":           400,"msg":              "验证码存储失败","ERROR-CONTROLLER": err.Error(),})return}c.JSON(http.StatusOK, gin.H{"msg":    "验证码发送成功","status": 200,"vCode":  vCode,})return
}// ValidateEmailCode
// @Title ValidateEmailCode
// @Description  验证邮箱验证码,并注册用户。
// @Author hyy 2022-03-05 18:19:18
// @Param c type description
func ValidateEmailCode(c *gin.Context) {vCode := c.Param("vCode")var user model.Usererr := c.ShouldBindJSON(&user)if err != nil {log.Println(err.Error())c.JSON(http.StatusBadRequest, gin.H{"status":           400,"msg":              "注册失败,json解析失败","ERROR-CONTROLLER": err.Error(),})return}// 默认用户权限为2if user.Level == 0 {user.Level = 2}user.CreatAt = time.Now().Format("2006-01-02 15:04:05")// 设置默认头像if user.HandPortrait == "" {user.HandPortrait = "https://gin-study-1308216693.cos.ap-nanjing.myqcloud.com/handportrait.png"}// 验证结构体字段if err := util.Validate.Struct(&user); err != nil {c.JSON(http.StatusBadRequest, gin.H{"status":         400,"msg":            "注册失败,非法字段!","ERROR-VALIDATE": util.GetErr(err),})return}// 对密码进行加密user.Password = util.Md5Encrypt(user.Password)// 获取存储在redis中的验证码vCodeRaw, err := util.RedisCont.Do("get", "vCode")if err != nil {log.Println(err.Error())c.JSON(http.StatusBadRequest, gin.H{"status":           400,"msg":              "Redis获取vCode失败","ERROR-CONTROLLER": err.Error(),})return}if string(vCodeRaw.([]byte)) != "" && vCode == string(vCodeRaw.([]byte)) {result := service.InsertUser(&user)if result["result"].(bool) {result["msg"] = "注册成功!"c.JSON(http.StatusOK, result)return} else {c.JSON(http.StatusBadRequest, result)return}} else {c.JSON(http.StatusBadRequest, gin.H{"status": 400,"msg":    "验证码已失效",})return}
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/69128.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

目前可以用的短信验证码平台有哪些?

说到短信验证码平台&#xff0c;相信很多人都不了解什么是短信验证码平台&#xff0c;简单的来说&#xff0c;就是一个可以发送短信验证码、短信通知和营销短信的平台。那么&#xff0c;目前可以用的短信验证码平台有哪些呢&#xff1f;下面就让小杜来跟大家详细的介绍一下&…

短信验证码有哪些好用的平台?需注意这5点!

如今大家注册新账号、信息变更、支付交易等场景是免不了短信验证码&#xff0c;而身为商家或者是企业&#xff0c;当然了也不可以在小小的短信验证码上“栽跟头”。可是&#xff0c;目前市面上五花八门&#xff0c;而且参差不齐的短信验证码平台&#xff0c;让许多企业眼花缭乱…

国内手机验证码短信平台哪个好用?关键在于这4个标准!

生活中&#xff0c;短信验证码作为短信服务的一种&#xff0c;作用是通过手机短信将验证码发送到用户手机上的安全认证方式。那么&#xff0c;对于国内手机验证码短信平台哪个好用呢&#xff1f;接下来就让摩杜云小杜来跟大家详细的介绍一下&#xff0c;希望大家看完之后有所收…

kaggle竞赛官网注册邮箱验证码收不到

写在前面&#xff1a;需要挂个代理 问题描述&#xff1a;使用的QQ邮箱&#xff0c;登录没收到邮件信息 解决方法&#xff1a;到邮箱的垃圾箱中查看&#xff0c;即可发现验证码信息--》输入验证码&#xff0c;注册成功

完美解决github访问速度慢问题

1. 修改本地hosts文件 windows系统的hosts文件的位置如下&#xff1a;C:\Windows\System32\drivers\etc\hosts mac/linux系统的hosts文件的位置如下&#xff1a;/etc/hosts 2. 增加http://github.global.ssl.fastly.net和http://github.com的映射 获取Github相关网站的ip 访…

解决浏览器访问Github访问速度慢问题

github.com 是一个面向开发者的社交网络平台&#xff0c;提供代码托管、项目管理、文档协作、问题追踪等工具和服务。GitHub 也是全球最大的开源代码托管平台之一&#xff0c;拥有超过 1.5 亿注册用户和数以亿计的代码仓库。 gist.github.com 是 GitHub 提供的一个轻量级的代码…

解决github访问速度慢的步骤

看了一下各种blog&#xff0c;是因为访问的时候受到 不(guo)明(nei) DNS的影响,解析的地址并不是github分发的网络加速域名。 *note*&#xff1a;可以使用ping github.com观测目前自己设备解析到的ip地址 所以一般都是更改设备的host文件&#xff0c;直接访问github的CDN节点…

Github访问速度慢的问题

转载&#xff1a;https://www.jianshu.com/p/ac6ad5096770 最近要使用Mask-RCNN做一个小项目&#xff0c;需要经常用到github下载东西。没想到github在国内访问速度很慢&#xff0c;有时候速度降低为0kb/s&#xff0c;进而显示下载失败&#xff0c;如下图所示。 在参考csdn相关…

解决国内访问github速度慢的问题

一、GitHub镜像访问 https://github.com.cnpmjs.org https://hub.fastgit.org 上面镜像地址是GitHub网站的镜像也就是克隆版本&#xff0c;在这两个镜像网站可以访问GitHub的内容&#xff0c;网站内容和GitHub是一样的。 2.GitHub加速下载 http://toolwa.com/github/ 打开上述…

用户量多后登录时查询速度慢怎么办?

文章目录 用户量多后登录时查询速度慢怎么办&#xff1f;给用户名字段创建唯一索引 提升速度登录查询速度知识点&#xff1a;使用MySQL给表里的某个字段建立索引 对数据库操作&#xff1a;创建唯一索引前&#xff1a;创建唯一索引后&#xff1a;索引type级别说明&#xff1a;索…

完美解决github访问速度慢

1. 修改本地hosts文件 windows系统的hosts文件的位置如下&#xff1a;C:\Windows\System32\drivers\etc\hosts mac/linux系统的hosts文件的位置如下&#xff1a;/etc/hosts 2. 增加http://github.global.ssl.fastly.net和http://github.com的映射 获取Github相关网站的ip 访…

完美解决github访问速度慢的问题

1. 修改本地hosts文件 windows10系统的hosts文件的位置如下&#xff1a;C:\Windows\System32\drivers\etc\hosts win7还缺hosts.ics文件&#xff0c;你们可以新建一个 mac/linux系统的hosts文件的位置如下&#xff1a;/etc/hosts2. 增加http://github.global.ssl.fastly.net和…

网站访问速度慢的排查方法

1. 当网站访问较慢时&#xff0c;首先先查看本地网络是否正常。 方法&#xff1a;先用网络测速测下本地的网络速率&#xff1a;网络速率低于50KB/s&#xff0c;访问网站自然也慢。 2. 本地网络速率正常时&#xff0c;再检查下所访问的网站是否正常。 方法&#xff1a;测一下网…

[网络]网速很快但是访问网页很慢的两种解决办法

文章目录 前言一、重置网络设置二、更改DNS总结 前言 本文主要讲述如何解决网速很快但是打开网页很慢的解决办法 一、重置网络设置 这是最简单粗暴的方式&#xff0c;以win10为例&#xff0c;打开设置&#xff0c;选择网络和Internet设置 点击网络重置 点击立即重置 此方法不…

NLP模型检查英语语法错误

当NLP模型产生了语法错误&#xff0c;怎么办&#xff1f; 比如&#xff0c;He wants that you send him an email. 没关系&#xff0c;现在可以像小时候的英语老师&#xff0c;改作文一样简单。 只要装上一个专门纠正语法错误的库就可以&#xff0c;还是毫秒钟就可揪出来的那种…

Apipost私有化部署活动即将火热开启,企业无忧

官方链接&#xff1a; Apipost-基于协作&#xff0c;不止于API文档、调试、Mock​https://link.zhihu.com/?targethttps%3A//console.apipost.cn/register%3Futm_source%3D10007 是不是还在用Postman进行API调试&#xff1f;晦涩的英文&#xff0c;偶尔崩溃的页面、一直转圈…

这款私有化部署的企业级在线文档,你了解多少?

大家好&#xff01;一直以来给大家讲解的都是无忧企业文档是办公软件&#xff0c;那么这款文档到底是适用于哪些人群呢&#xff1f;它真正能产生什么价值&#xff1f;相信还是有很多小伙伴还不太了解无忧企业文档&#xff0c;今天小编就带大家一起来更加熟悉的了解无忧企业文档…

供应链管理:获取竞争优势的对策思考

供应链要符合时代对供应链发展的要求。从科技创新的发展角度来看&#xff0c;我们所处的时代正在发生变化。这个时代的生产与消费的潮流是个性、定制、柔性、敏捷与创新。供应链的竞争优势必须从深层次进行思考&#xff0c;研究供应链管理系统是如何将企业的生产或动进行了前伸…

企业国际物流信息化解决方案_箱讯科技

随着全球化的加速和国际贸易的不断扩大&#xff0c;物流行业的重要性日益凸显。企业国际物流信息化解决方案成为了提高企业物流效率和降低成本的重要手段。本文将从信息化对物流行业的影响、企业国际物流信息化解决方案的构成和实施步骤三个方面进行探讨。 一、信息化对物流行业…

构建供应商管理系统,打造企业端到端的高效供应链

商城系统开发技术越发成熟&#xff0c;带动各行业的供应链模式融合&#xff0c;电商平台企业之间的竞争从价格竞争、人脉竞争上升到了产品质量、服务质量以及产业采购供应商系统服务战略的核心竞争上。如何加深与优质供应商的合作紧密度&#xff1f;通常采取的采购战略&#xf…