SpringBoot 通过阿里云的短信功能 实现发送手机验证码
我们在项目中经常遇到 需要通过手机号发送验证码实现登录注册等功能。
这里讲一下,Springboot项目中如果通过阿里云的短信功能, 实现发送手机验证码并验证
一、准备工作
1、购买阿里云的短信服务
https://free.aliyun.com/product/cloudcommunication-free-trial
新用户有免费试用产品
个人使用的话,有3个月内100条的免费服务,如果学习的话,足够用了,否则还需要充钱!!!
2、购买后,设置 AccessKey
阿里云会自动获取绑定的手机号,你只需要获取短信验证码就可以创建成功。
3、设置签名
4、添加模板
开发
开发者可以按照阿里云的这个开发者手册开发。
https://help.aliyun.com/document_detail/101300.html?spm=a2c4g.11186623.6.610.5ed850a4DjrhHY
发送短信这个接口如何调用? 这个网址还提供了调试功能,很方便。
https://help.aliyun.com/document_detail/101414.html?spm=a2c4g.11186623.6.624.15b85f30AyGxea
我们可以直接调用 阿里云为我们提供的API
这里只用自定义的方法
1、导入依赖
<dependency><groupId>com.aliyun</groupId><artifactId>aliyun-java-sdk-core</artifactId><version>4.5.3</version>
</dependency>
<dependency><groupId>com.aliyun</groupId><artifactId>aliyun-java-sdk-dysmsapi</artifactId><version>1.1.0</version>
</dependency>
2、编写工具类
这里自定义工具类进行使用
/*** description:** @author su* @date 2022/2/15 14:41*/
@Component
public class SMSUtils {private static final Logger log = LoggerFactory.getLogger(SMSUtils.class);@Value("${sms.accessKeyId}")private String accessKeyId;@Value("${sms.secret}")private String secret;@Value("${sms.signName}")private String signName; // 短信签名@Value("${sms.templateCode}")private String templateCode; //短信模板@Value("${sms.regionId}")private String regionId; // 短信服务器区域public void sendMsg(String phone, String code) {DefaultProfile profile = DefaultProfile.getProfile("cn-hangzhou", accessKeyId, secret);DefaultAcsClient client = new DefaultAcsClient(profile);CommonRequest request = new CommonRequest();request.setSysMethod(MethodType.POST);//下面两个不能动request.setSysProduct("Dysmsapi");request.setSysDomain("dysmsapi.aliyuncs.com");request.setSysVersion("2017-05-25");request.setSysAction("SendSms");//自定义参数(手机号,验证码,签名,模板)request.putQueryParameter("RegoinId", regionId);request.putQueryParameter("PhoneNumbers", phone);request.putQueryParameter("SignName", signName); //填自己申请的名称request.putQueryParameter("TemplateCode", templateCode);request.putQueryParameter("TemplateParam", "{\"code\":\"" + code + "\"}");try {CommonResponse response = client.getCommonResponse(request);log.info("阿里云短信响应信息:" + response.getData());boolean success = response.getHttpResponse().isSuccess();log.info("短信发送是否成功:" + success);} catch (ClientException e) {e.printStackTrace();}}
}
这些变量放在配置文件中,方便维护
sms:accessKeyId: LTAI5tGF2kkoJbB9ftdH2DwTsecret: YYc2CShh6RVZmMuhQzifAXS5WimvuIsignName: 青橙小店templateCode: SMS_217145407regionId: cn-hangzhou
@RestController
@RequestMapping("admin")
public class UserController {private static final Logger log = LoggerFactory.getLogger(UserController.class);@Autowiredprivate RedisTemplate redisTemplate;@Autowiredpublic SMSUtils smsUtils;@PostMapping("/code")public void sendMsg(@RequestBody MsgVo msgVo) {if (redisTemplate.hasKey("TOMEOUT:" + msgVo.getPhone())) {throw new RuntimeException("不允许重复发送");}String code = RandomStringUtils.randomNumeric(4);log.info("发送的验证码:{}" + code);smsUtils.sendMsg(msgVo.getPhone(), code);redisTemplate.opsForValue().set(msgVo.getPhone(), code, 60, TimeUnit.SECONDS);redisTemplate.opsForValue().set("TOMEOUT:" + msgVo.getPhone(), true, 10, TimeUnit.MINUTES);}
}
启动测试
SpringBoot 通过阿里云的短信功能 实现发送手机验证码相关推荐
- (短信服务)java SpringBoot 阿里云短信功能实现发送手机验证码
一.阿里云准备工作 1.阿里云短信服务-注册账号 阿里云官网: https://www.aliyun.com/ 点击官网首页注册按钮. 2.阿里云短信服务-设置短信签名(阿里云提供测试的签名,暂时可以 ...
- 一小时学会使用SpringBoot整合阿里云SMS短信服务
1. 登录阿里云进入控制台 进入阿里云控制台,https://home.console.aliyun.com/在个人头像位置点击进入AccessKey管理: 2. 创建用户和用户组 创建用户组 添加完 ...
- SpringBoot+vue 使用阿里云的短信功能发送手机验证码
前言: 小编后端用的是Springboot 前端用的是vue ,小编主要是写后台,前端页面比较简陋,后期还要调优,写的不对处还望多多包涵. 环境: 需要先准备好阿里云的账号和一些必要的参数.详情见我的 ...
- Java实现阿里云发短信功能
一 点睛 1 阿里云短信开发文档 https://helpcdn.aliyun.com/document_detail/55284.html 2 阿里云AK申请 https://usercenter. ...
- 亿级高并发电商项目-- 实战篇 --万达商城项目 十二(编写用户服务、发送短信功能、发送注册验证码功能、手机号验证码登录功能、单点登录等模块)
- 使用阿里云的短信服务发送短信
原文地址使用阿里云的短信服务发送短信 在给客户开发一个信息发送功能的时候,需要涉及到短信的发送,短信发送一般不同的厂商提供的接口不同,处理方式也不太一样,之前用的一个厂商的,提供了一个封装类就很容易发 ...
- 2021最新 使用阿里云的短信服务发送短信
在给客户开发一个信息发送功能的时候,需要涉及到短信的发送,短信发送一般不同的厂商提供的接口不同,处理方式也不太一样,之前用的一个厂商的,提供了一个封装类就很容易发送短息,因此都是基于HTTP协议做的一 ...
- 使用阿里云的短信服务进行登录实现登录拦截的功能(前后端分离) ---- (Session存储验证码用户信息)
使用阿里云的短信服务进行登录&实现登录拦截的功能(Session存储 开通短信服务 获取AccessKey 搭建前端环境 搭建后端环境 实体类 Dao层 业务层 控制层 配置类 工具类 开通短 ...
- springboot开发基于阿里云的短信服务、邮件推送服务
短信服务以及邮件推送服务使用的都是阿里云的产品,短信服务是收费的,所以需要选择短信服务的套餐并预充值才能使用.邮件推送服务是有200条的免费额度. 一:短信服务 1.申请短信签名.短信模板 到阿里云的 ...
- 阿里云的短信验证功能实现
阿里云的短信验证功能实现 第一步:申请 签名,模板,RAM访问控制 签名 模板 RAM访问控制 创建用户 创建完一定要保存 这个 截图里面的参数 这只能看一次 创建完成,添加授权 搜索 短信 添加 管 ...
最新文章
- 程序员需要有多懒 ?- cocos2d-x 数学函数、常用宏粗整理 - by Glede
- 影响SEO网站文章收录的因素有哪些?
- 图片的批量下载 和 爬虫爬取图片数据集
- C/C++中.和-的用法区别
- DataGrid内容的导出
- python字符串注释_python字符串注释_Python学习笔记-字符串与注释
- python 并行计算库_Python 大规模数据存储与读取、并行计算:Dask库简述
- ORA-29339错误解决办法
- RouterOS SOCKS代理服务器(官方文档翻译)
- c++ 函数返回空_Python all() 函数
- java马克思手稿_java 循环嵌套解决一元,二元,三元方程(增长率,鸡兔同笼,马克思手稿)...
- String int之间转换
- 【风马一族_软件】微软卸载工具_msicuu2.exe
- inventor弧度怎么标注_家里房间太大,WiFi信号覆盖不了怎么办?网件新作:分身术...
- Python:运营自媒体,如何修改图片的MD5值
- Unity发布ios和Android获取相机权限的相关问题
- 23年 yolov5车辆识别+行人识别+车牌识别+车速检测代码(python)
- 计算机主机开机为什么显示器不开,电脑显示屏不亮但是主机已开机怎么解决
- echarts 雷达图
- ibm电脑服务器郑州维修,郑州IBM ThinkPad笔记本芯片级维修中心