go语言微服务项目,高级篇--05短信验证码-获取绑定数据

短信验证码

测试短信验证码

  1. 申请 阿里云账号、开通短信验证码功能、申请签名、申请模板、申请 AccessKey

  2. 打开 OpenAPI Explorer。

  3. 选择 左侧 SendSms

  4. 在中间位置依次填:华东1(杭州)、手机号、签名的名称、模板Code、{”code“:验证码}

  5. 在右侧自动生成代码。 拷贝至,测试.go 程序中

  6. 将 dysmsapi.NewClientWithAccessKey() 函数的 :<accessKeyId> 和 <accessSecret> 替换为我们申请到的 AccessKey 对应值。

  7. 虚拟机安装的 SDK 版本,比从 OpenAPI Explorer 工具拿到的代码版本低。需要添加一行代码:

    request.Domain = "dysmsapi.aliyuncs.com"

  8. 运行 测试.go 程序。 —— 成功:在手机上收到 短信验证码。

将短信验证码集成到项目

  1. 修改 router 分组。

    --- 在 web/main.go// 添加路由分组
    r1 := router.Group("/api/v1.0")
    {
         
        r1.GET("/session", controller.GetSession)
        r1.GET("/imagecode/:uuid", controller.GetImageCd)
        r1.GET("/smscode/:phone", controller.GetSmscd)
    }
    
  2. 提取Get请求中的数据

    --- 在 web/controller/user.go 中
    GET 请求 URL 格式: http://IP:port/资源路径?key=value&key=value&key=value...
    
    func GetSmscd(ctx *gin.Context)  {
         
    	// 获取短信验证码
    	phone := ctx.Param("phone")
    	// 拆分 GET 请求中 的 URL === 格式: 资源路径?k=v&k=v&k=v
    	imgCode := ctx.Query("text")
    	uuid := ctx.Query("id")
    
    	fmt.Println("---out---:", phone, imgCode, uuid)
    }
    
  3. 封装实现 校验图片 验证码

    --- 依据 MVC 代码架构。 创建 model/modelFunc.go
    
    // 校验图片验证码
    func CheckImgCode(uuid, imgCode string) bool {
         
    	// 链接 redis
    	conn, err := redis.Dial("tcp", "192.168.6.108:6379")
    	if err != nil {
         
    		fmt.Println("redis.Dial err:", err)
    		return false
    	}
    	defer conn.Close()
    
    	// 查询 redis 数据
    	code, err := redis.String(conn.Do("get", uuid))
    	if err != nil {
         
    		fmt.Println("查询错误 err:", err)
    		return false
    	}
    	
    	// 返回校验结果
    	return code == imgCode
    }
    
  4. 根据校验结果,发送短信验证码

    result := model.CheckImgCode(uuid, imgCode)
    if result {
           // 校验成功
        // 发送短信验证码
        response, _ := client.SendSms(request)
        if response.IsSuccess() {
         
            // 发送短信验证码 成功
        } else {
         
            // 发送端验证码 失败.
        }
    } else {
         
        // 校验失败
    }
    
  5. 发送短信验证码实现

    client, _ := dysmsapi.NewClientWithAccessKey("cn-hangzhou", "LTAI4FgbQXjf117SX7E75Rmn", 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

有码无尘

知识无价,有收获就好!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值