Go语言初识应用--容联云发送短信验证码、手机号注册
使用gin框架、gorm映射
所使用的连接容联云参考容联云官方文档,放置到utils中,
gin项目结构根据自身需要,大题如下设置:
utils--sms.go
package main
import ("github.com/cloopen/go-sms-sdk/cloopen""log"
)
func main() {cfg := cloopen.DefaultConfig().// 开发者主账号,登陆云通讯网站后,可在控制台首页看到开发者主账号ACCOUNT SID和主账号令牌AUTH TOKENWithAPIAccount("accountSId").// 主账号令牌 TOKEN,登陆云通讯网站后,可在控制台首页看到开发者主账号ACCOUNT SID和主账号令牌AUTH TOKENWithAPIToken("auth token")sms := cloopen.NewJsonClient(cfg).SMS()// 下发包体参数input := &cloopen.SendRequest{// 应用的APPIDAppId: "appId",// 手机号码To: "1352*******",// 模版IDTemplateId: "templateId",// 模版变量内容 非必填Datas: []string{"您的验证码是****"},}// 下发resp, err := sms.Send(input)if err != nil {log.Fatal(err)return}log.Printf("Response MsgId: %s \n", resp.TemplateSMS.SmsMessageSid)}
controller--user_controller.go
package controllerimport ("fmt""github.com/gin-gonic/gin""myproject/model""myproject/utils""regexp""strconv"
)// 总路由分发
func UserRegister(userGrp *gin.RouterGroup) {userGrp.Use().POST("/send_code", Sendcode)userGrp.Use().POST("/register", Register)
}// 发送短信验证码
func Sendcode(c *gin.Context) {//获取参数。手机号//验证合法//从redis获取存在则不能重复发//不存在 生成随机数 调用发短信接口//存入redis返回结果mobile := c.Query("mobile")fmt.Println(">>>>>>>" + mobile)reg := "^1[3-9]{1}\\d{9}$"result := regexp.MustCompile(reg)flag := result.MatchString(mobile)if !flag {c.JSON(200, gin.H{"code": "10011","res": "手机号不正确,请重新输入",})} else {r := utils.GetRedis()value := r.Get(mobile)if value == "" {// 生成随机值短信验证码num := utils.RandInt(10000, 99999)fmt.Println(num)num1 := strconv.Itoa(num) // 转换string// 调用容联云发送短信接口utils.SendSms(mobile, num1)r.Setex(mobile, 60, num1)c.JSON(200, gin.H{"code": "200","res": "发送成功",})} else {c.JSON(200, gin.H{"code": "10012","res": "不能重复发送",})}}
}type UserInfo struct {Mobile stringCode string
}// 注册 发送短信 随机值
func Register(c *gin.Context) {//mobile := c.PostForm("mobile")//newcode := c.PostForm("newcode")var userInfo UserInfoc.Bind(&userInfo)mobile := userInfo.Mobilenewcode := userInfo.Coder := utils.GetRedis()code := r.Get(mobile)if code != newcode {c.JSON(200, gin.H{"code": "10020","res": "验证码不正确",})} else {//加入数据库user := &model.User{Name: mobile,Mobile: mobile,Password: "123456",}db := model.GetDb()db.Create(user)fmt.Println(user.ID)//生成token返回token, _ := utils.ReleaseToken(user.ID)c.JSON(200, gin.H{"code": "200","res": "注册成功","userid": user.ID,"token": token,})}}
获取前端传参方式:
获取 URL (query)参数
querystring
指的是URL中?
后面携带的参数,例如:/user/search?username=zhangsan&address=北京
。
获取 Form参数
前端请求的数据通过form表单提交
参数绑定
使用 Bind() 方法, 根据请求方式,自动提取 JSON, form表单 和 Query 类型的参数,放入结构体中
Go语言初识应用--容联云发送短信验证码、手机号注册相关推荐
- Django使用容联云发送短信验证码时提示:172001,网络错误
尝试用django连接容联云发送短信验证码,运行时出现了以下提示:{'172001':'网络错误'}:在网上查阅资料后得知,是因为python升级到2.7.9之后引入了一个新特性,当打开一个https ...
- 容联云发送短信验证码
setting配置 # 配置jwt的全局认证 REST_FRAMEWORK = {'DEFAULT_AUTHENTICATION_CLASSES':['rest_framework_jwt.authe ...
- flask容联云发送短信验证码和异步发送
容联云地址:https://www.yuntongxun.com/ 获取短信验证码流程图 容联云配置 在容联云官网注册一个账号,发送短信验证码必须使用三个ID ACCOUNT SID (主账户ID ...
- luffcc项目-06-使用容联云发送短信、Celery
一.使用容联云发送短信 https://www.yuntongxun.com/ 目录结构 sms.py import json from .SmsSDK import SmsSDK from djan ...
- 使用容联云获取短信验证码
容联云地址:https://www.yuntongxun.com/ 获取短信验证码流程图 容联云配置 在容联云官网注册一个账号,发送短信验证码必须使用三个ID ACCOUNT SID (主账户ID ...
- 荣联云发送短信验证码--python3接口
前言 近期做网页注册需要用到发送验证码功能,于是用荣联云的发送短信验证码进行测试,官网上提供的demo是python2.7的,而目前都使用的python3了,而且demo中的代码太长了,我只取demo ...
- Java调用容联云通讯短信验证码API接口示例
1.注册账号 https://www.yuntongxun.com/doc.html 注册后点击控制台可以看到你的信息 2.添加测试号码 3.打开文档>Rest API>短信 下载Java ...
- 记录开发内容demo-java华为云发送短信验证码
文章目录 前言 一.所需sdk 二.util类 1.demo 2.登录调用 总结 前言 华为云发送短信验证码 一.所需sdk <!--华为云手机获取短信验证码--><dependen ...
- 腾讯云发送短信验证码服务
腾讯云发送短信验证码服务 1.注册腾讯云的账号 在腾讯云的官网:https://cloud.tencent.com/注册一个腾讯云的账号,就是日常的注册流程(这里就不贴图了),不过要实名认证啥的,认证 ...
最新文章
- SpringBoot简单使用
- luogu3244 bzoj4011 HNOI2015 落忆枫音
- java负数右移_Java中负数的右移
- struts升级2.3.12到2.5.13
- weblogic创建域后启动不了_摩托车淋雨后启动不了什么原因?如何解决?
- html5着陆页模板,多用途着陆页HTML模板
- 服务端api用php写还是用node,如何使用node搭建服务器,写接口,调接口,跨域
- Win7下的使用QTP进行猴子测试的性能日志实现方法
- python编程学习_使用EduBlocks轻松学习Python编程
- js的tree数组对象扁平化思否_JS专题之数组展开
- qzone.class.php,[宜配屋]听图阁
- Soft NMS算法笔记
- thymeleaf th:href 多个参数传递格式
- utl_file包的使用
- 允许外部访问Windows本机的指定端口
- distpicker省市区插件设置请选择省市区提示/或设置初始值问题
- js控制页面只刷新一次
- http://www.jobui.com/mianshiti/it/java/6782/
- 虚拟路由器冗余协议VRRP的基本配置【学习笔记(1)】
- 送给女朋友的java程序_逗女朋友开心的玫瑰花Java web程序