SpringBoot 通过阿里云的短信功能 实现发送手机验证码

article/2025/8/27 19:22:46

我们在项目中经常遇到 需要通过手机号发送验证码实现登录注册等功能。
这里讲一下,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);}
}

启动测试
在这里插入图片描述


http://chatgpt.dhexx.cn/article/SSMDS4lI.shtml

相关文章

使用node实现向手机发送验证码

步骤一&#xff1a;安装node.js Node官方网站https://nodejs.org/en/ 下载node.js 安装好之后输入 node -v 能够显示版本号表示安装成功了 步骤二&#xff1a;注册并登陆聚合科技&#xff0c;申请短信API服务 我们来到聚合科技的官网中https://www.juhe.cn/ &#xff0c;注册…

项目接入腾讯云短信服务SMS实现向用户发送手机验证码

1、自述 早在18年的时候&#xff0c;我就在项目中使用过阿里云的短信服务&#xff0c;现在我上阿里云短信控制台看&#xff0c;还能看到当时创建的短信签名&#xff0c;如下图所示。 出于某种原因&#xff0c;我现在想重新申请一个新的签名&#xff0c;却审批失败了&#xf…

SpringBoot+vue 使用阿里云的短信功能发送手机验证码

前言&#xff1a; 小编后端用的是Springboot 前端用的是vue ,小编主要是写后台&#xff0c;前端页面比较简陋&#xff0c;后期还要调优&#xff0c;写的不对处还望多多包涵。 环境&#xff1a; 需要先准备好阿里云的账号和一些必要的参数。详情见我的另一篇博客。 https://blo…

腾讯云短信服务实现 Java 发送手机验证码(SpringBoot+Redis 实现)

文章目录 腾讯云短信服务实现 Java 发送手机验证码&#xff08;SpringBootRedis 实现&#xff09;1、打开腾讯云短信服务2、创建短信签名3、创建短信正文模板4、等待全部审核完毕即可5、发送短信6、短信业务实战&#xff08;SpringBootRedis&#xff09;&#xff08;1&#xff…

Spring boot 发送手机验证码

由于阿里云现在的短信签名无法通过申请&#xff0c;所以我这里选择了中国网建SMS短信平台&#xff08;手机号注册即用&#xff0c;有免费赠送的几条短信测试&#xff09; demo代码地址&#xff1a;https://github.com/mer97/springboot-sendmessage Spring boot 实现发送手机验…

Java实现发送手机验证码,发送短信

要发送短信&#xff0c;我们需要第三方提供的短信接口&#xff0c;这里我使用阿里云的短信服务。 首先进入阿里云的官网&#xff0c;然后注册。登陆之后选择云通信——》短信服务 然后点击免费开通。 开通后进入控制中心&#xff0c;选择右上方的支持与服务&#xff0c;选择帮…

Java实现手机发送短信验证码

发送短信验证码首先要在互亿无线短信平台去开通短信服务,地址"ihuyi.com" 一定要留好自己申请的API ID,API key和模板参数说明:代码示例: pom导包 <!-- 短信 --> <dependency><groupId>dom4j</groupId><artifactId>dom4…

SSM发送手机验证码——以网建SMS为例

整理一下从大二开始写的东东 后台源码链接&#xff1a; 点我自取 到网建申请一个帐号&#xff0c;好像可以免费用10条短信 设置用户名、密钥&#xff0c;在发送的时候需要携带该信息 前端代码简化后如下&#xff0c;提交表单我用的是ajax&#xff0c;如果直接提交表单记得name…

Java实现发送手机验证码

向手机发送验证码在用户注册等等业务中会用到&#xff0c;下面我来介绍如何用Java实现向手机发送验证码。 笔者此处使用的是阿里云的短信服务&#xff0c;首先需要登录阿里云官方网站&#xff0c;找到并开通短信服务&#xff0c;然后需要申请短信签名和模版&#xff0c; 短信签…

java 实现发送手机验证码的功能 (超详细)

我这里使用的旦米&#xff08;http://www.danmi.com/&#xff09;你们用阿里的就去看看其他博客 1.首先注册一个旦米的账号,第一次注册会免费的送你10元。足够你去测试用&#xff0c;不用担心自己去充钱。 2.注册好了登录进去&#xff0c;必须要公司认证&#xff0c;认证通过之…

java实现发送手机验证码功能

1. 进入秒嘀科技&#xff08;http://www.miaodiyun.com/&#xff09;&#xff0c;注册一个账号 2. 注册好之后&#xff0c;点击 用户中心 -> 账户管理&#xff0c;就会进入如下界面 &#xff08;顺便提一下&#xff0c;新注册的用户&#xff0c;平台会免费赠送你10元&#…

vue使用element发送手机验证码倒计时

发送验证码倒计时 html <el-form class"form" :model"form" labeal-position"left"> <el-form-item label"姓名"><el-input v-model"form.Name" placeholder"请输入姓名"></el-input>…

C# WinForm 使用SMS接口发送手机验证码+图形验证码+IP限制

文章目录 前言功能实现一、功能界面二、创建图形验证码类三、创建存储IP地址的数据库表四、创建手机验证码类五、在Form1中调用以上两个类中的函数&#xff0c;实现功能 前言 1.发送手机验证码用的是网建的SMS接口&#xff08;http://sms.webchinese.cn/&#xff09;   2.手机…

uniapp | 发送手机验证码 button组件

一、功能和效果展示 1.组件功能 uniapp &#xff08;1&#xff09;按钮初始显示“发送”&#xff0c;点击按钮后按钮显示倒计时60s&#xff1b; &#xff08;2&#xff09;倒计时60s期间点击按钮&#xff0c;不会重置计时器&#xff1b; &#xff08;3&#xff09;倒计时60s结…

发送手机验证码

手机验证码不能自己生成&#xff0c;需要由第三方来完成发送。本文选择网易云作为第三方来发送验证码。 首先&#xff0c;我们要注册网易云账号&#xff0c;完成登陆。选择“产品与服务”选项中的“通信与视频”&#xff0c;点击创建应用&#xff0c;完成后&#xff0c;下方有…

java发送手机验证码实现

正文 今天来用java实现手机验证码的发送。 短信平台有很多&#xff0c;中国网建提供的SMS短信通&#xff0c;注册免费5条短信&#xff0c;3条彩信&#xff0c; http://sms.webchinese.cn/ 但是刚才试了&#xff0c;第一次用官方提供的demo发送成功&#xff0c;然后整合到自…

Excel 字符串拼接

例子&#xff1a;“exec sp_addextendedproperty N’MS_Description’, N’”&B1&“‘, N’SCHEMA’, N’dbo’,N’table’, N’”&A1&“” &#xff1a;公式 “ abc ” &#xff1a; “”中间为任意字符/字符串 & A1 &&#xff1a;&&中间为拼…

Excel如何插入文本字符串或字符

目录 1.用“&”连接的方法插入文本或字符的办法及实例 2.用TEXT函数插入“&#xffe5;”或“$"字符 3.用TEXT函数以及“&”连接符插入文本或符号 1.用“&”连接的方法插入文本或字符的办法及实例 &#xff08;1&#xff09;方法&#xff1a;关键在于用“&a…

excel连接字符串

Excel连接字符串的功能挺强大的。 很实用。 有2种方式。 1&#xff1a; 2&#xff1a; 1个是调用了concatnate函数&#xff0c;一个是使用了&(就是号的功能了)。

excel字符串和单元格拼接,Excel中将单元格的字符串进行合并的具体方法

在利用Excel进行办公时&#xff0c;对多个单元格的字符串进行合并是很常见的操作&#xff0c;但是对于刚接触Excel软件的小伙伴来说&#xff0c;可能有些困难。下面小编就与大家分享一下在Excel中实现字符串合并的方法&#xff0c;有需要的用户可以参考下。 Excel中如何合并文本…