SpringBoot(21) 基于阿里大于的短信验证微服务
阿里大于其实就是阿里云下提供的一个服务,有开放API及SDK,用起来很方便,至于怎么去注册,开启服务,申请签名,生成短信模板,获取AccessKey,下载SDK和Demo等等操作就不详细介绍了,网上有很多的教程很详细,可以参考这篇博客:
https://blog.csdn.net/qq1031893936/article/details/81173878
其中下载SDK地址: https://help.aliyun.com/document_detail/55359.html?spm=5176.doc55284.2.6.iRVRZy
这里主要是写短信验证功能是怎么实现的。并把它做成一个微服务的这样通用框架,然后通过这个短信上的微服务框架,使得用户服务可以通过rabbitMQ(正好项目中也用到了rabbitMQ)调用短信微服务实现与阿里大于的交换,实现短信的发送和验证。
SDK下载之后解压目录如下,api_demo是官方例程,api_sdk中包含了两个jar包
在项目中添加两个jar包(aliyun-java-sdk-core-3.3.1.jar和aliyun-java-sdk-dysmsapi-1.0.0.jar),并在Maven(pom.xml文件)中添加依赖
1 | <!--阿里大于--> |
这样的话其实就已经完成了基础的配置。
然后api_demo下有官方给出的demo具体代码如下,其实就是两个核心函数,sendSms()实现的是发短信的功能,querySendDetails()实现查询发送短信的详细信息.
1 | package com.springboot.SecKill.SMSVerification; |
然后在SpringBoot中具体的使用阿里大于来实现短信验证,注册登录功能.
1. 在application.properties文件中添加配置
1 | accessKeyId = xxxxx; |
2. 短信发送类
其实就是吧官方的demo修改一下,把其中的一些参数改变成为传入参数
1 | package com.springboot.SecKill.SMSVerification; |
3. rabbitMQ实现短信接收
rabbitMQ中显定义一个队列,并初始化(下面就是简要的把要添加的内容写出来了,项目中使用了不止这一个对列)
1 |
|
然后接收类
1 | package com.springboot.SecKill.SMSVerification; |
其实到这里就形成了一个通用的短信发送服务,用户在注册或登录的时候只需要通过RabbitMQ读取MQConfig.SMS_QUEUE对列中的短信即可。
4. 写一个网页测试
1 |
|
到这里其实就完成了,接下来就是把这个整合到登陆注册页面上去,实现短信的发送,验证功能,其实具体的流程是很简单的,就是生成-RabbitMQ-后端检验,具体的就有些繁琐,就不具体详细写了,完整的代码可以去我的github上下载,右侧有链接。