短信发送验证码实现验证

写在前面
  你们好,我是小庄。很高兴能和你们一起学习短信发送功能。如果您对Java感兴趣的话可关注我的动态.
  写博文是一种习惯,在这过程中能够梳理和巩固知识点。

实现思路:前台将手机号码发送到后台,后台设置随机数,并把随机数存到Session
然后把手机号和随机数作为参数传到第三方接口(短信接口)
提交时把前台输入的验证码与Session中的验证码进行匹配

一、前期准备

短信发送一条0.0045元,可以充一块钱作为测试

使用阿里云信息服务作为第三方接口

阿里云信息服务

  1. 添加签名
  2. 添加模块
  3. 设置密钥
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    具体配置可查看官方文档进行配置

二、代码实现

查看官方文档

<!-- 这个是springboot的pom.xml文件添加的 -->
<dependency><groupId>com.aliyun</groupId><artifactId>aliyun-java-sdk-core</artifactId><version>4.5.1</version>
</dependency>

第二种方式是使用官方提供的jar包,然后Java Build Path > Libraries > Add JARs

第二步:编写短信工具类

import com.aliyuncs.CommonRequest;
import com.aliyuncs.CommonResponse;
import com.aliyuncs.DefaultAcsClient;
import com.aliyuncs.IAcsClient;
import com.aliyuncs.exceptions.ClientException;
import com.aliyuncs.http.MethodType;
import com.aliyuncs.profile.DefaultProfile;public class SendSmsUtils {public void sendMsg(String phone,String code){DefaultProfile profile = DefaultProfile.getProfile("cn-hangzhou", "这里输入AccessKeyId对应内容", "这里输入AccessKeySecret对应内容");//这里是你的密钥IAcsClient client = new DefaultAcsClient(profile);CommonRequest request = new CommonRequest();request.setSysMethod(MethodType.POST);request.setSysDomain("dysmsapi.aliyuncs.com");request.setSysVersion("2017-05-25");request.setSysAction("SendSms");request.putQueryParameter("RegionId", "cn-hangzhou");request.putQueryParameter("PhoneNumbers", phone);request.putQueryParameter("SignName", "小庄商城");//填写你的签名request.putQueryParameter("TemplateCode", "SMS_198932151");request.putQueryParameter("TemplateParam","{'code':'"+code+"'}");try {CommonResponse response = client.getCommonResponse(request);System.out.println(response.getData());} catch (ClientException e) {e.printStackTrace();}}}

为了方便,我把验证码随机数生成也弄成一个工具类

public class CodeUtils {public String  setCode(){String code="";for (int i=0;i<6;i++){code+=(int)Math.floor(Math.random()*10);}return code;}
}

第三步:编写Controller类

import com.zwz.util.CodeUtils;
import com.zwz.util.SendSmsUtils;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.ResponseBody;import javax.servlet.http.HttpSession;@Controller
public class SendSmsController {//这里是点击验证时发送的短信功能@PostMapping("/tosend")public void sendSms(@RequestParam("phone") String phone,HttpSession session){//调用短信工具类SendSmsUtils sendSmsUtils=new SendSmsUtils();//调用验证码工具类CodeUtils codeUtils=new CodeUtils();String code=codeUtils.setCode();//将生成随机数验证码存到Session中session.setAttribute("code",code);//将电话和验证码作为参数传到短信工具类中sendSmsUtils.sendMsg(phone,code);}//这里是点击提交进行校验短信的功能@ResponseBody@PostMapping("/validate")public String validate(@RequestParam("code") String code, HttpSession session){//获取Session中的验证码String _code= (String) session.getAttribute("code");//前台传入验证码与Session进行匹配if(code.equals(_code)){return "验证成功!";}else {return "验证失败!";}}
}

第四步:前台代码
注意:我这里使用的是bootstrap框架和jquery Ajax,需要导入bootstrap的css文件、js文件和jquery的js文件
页面展示

<!DOCTYPE html>
<html xmlns:th="http://www.thymeleaf.org">
<head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><link rel="shortcut icon" href="img/favicon.ico"/><link rel="bookmark" href="img/favicon.ico"/><link rel="stylesheet" href="/css/bootstrap.min.css" type="text/css" ><script type="text/javascript" src="/js/jquery-3.3.1.min.js"></script><script src="/js/bootstrap.min.js"></script><title>手机验证码</title><style type="text/css">h1 {text-align:center;font-size:35px;color: #8a6d3b;}</style>
</head>
<body><div class="isform" style="width: 30%; height: 350px; margin:auto;border: 2px solid #93dddd; margin-top: 10%;"><h1>手机验证</h1><form action="/validate" method="post" style="width: 90%; margin: auto"><div class="form-group" style="margin-bottom: 40px;"><label style="position: relative; margin-top: 30px; margin-bottom: 5px;">手机号码</label><input type="text" class="form-control" name="phone" id="phone"  placeholder="请输入手机号码"></div><div class="col-lg-12" style="margin-bottom: 40px;"><div class="col-lg-6"><input type="text" class="form-control" name="code" id="code" placeholder="请输入验证码"></div><div class="col-lg-6"><a href="javascript:void(0)" class="btn btn-info" id="getcode">点击获取验证码</a></div></div><div class="col-lg-12"><button class="btn btn-info pull-left" style="width: 100%;">提交</button></div></form>
</div><script>var obj=document.getElementById("getcode");var flag=60;obj.onclick=function () {time();var phone=$("#phone").val();$.ajax({type : 'post',async : false,url : '/tosend',data : {"phone" : phone,},success : function(data) {}});}//时间计时器function time() {flag--;obj.innerHTML=flag+"秒后重新获取验证码";if(flag==0){obj.innerHTML="获取验证码";flag=60;}else {setTimeout("time()",1000);}}
</script>
</body>
</html>

在这里插入图片描述

以上就是短信验证码实现,喜欢的记得关注哦!如有问题请留言

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/35685.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

短信接口被恶意调用?企业短信防火墙+【中昱维信】短信验证码【Java】

短信接口被恶意调用&#xff1f;企业短信防火墙【中昱维信】短信验证码【Java】 一、企业短信防火墙的实现1.1 简介1.2 第一步&#xff1a;获取防火墙帐号密钥1.3 第二步&#xff1a;下载防火墙服务器1.4 第三步&#xff1a;业务系统前后端接入1.5丰富可视化实时风险大盘&#…

短信验证码的登录流程

点击上方 "编程技术圈"关注, 星标或置顶一起成长 后台回复“大礼包”有惊喜礼包&#xff01; 每日英文 Empty heart, is the best gift; alone the way, is the most beautiful scenery. 放空的心&#xff0c;是最好的礼物&#xff1b;独走的路&#xff0c;是最美的风…

App发送短信验证码实现

前言&#xff1a; 现如今&#xff0c;电话是接外卖和快递的&#xff0c;短信是用来收验证码的。那么像一般的App里面使用手机号验证码方式进行注册或登录是怎样实现的呢&#xff1f;这篇文章可能帮到你。 1.寻找合适的短信平台 因为三大运营商的限制摆在那里&#xff0c;凭个人…

GPT+时代来临:OpenAI开放GPT3.5模型,1000token仅1毛钱

GPT3.5 Model API 使用指南 今天OpenAI公司开放了最新的GPT3.5模型&#xff1a;gpt-3.5-turbo&#xff0c;也就是目前网页版的ChatGPT使用的模型。而此前OpenAI开放的最新的模型text-davinci-003则是基于GPT3模型构建的。并且价格十分便宜&#xff1a;1000 token/0.002美元&am…

『2023北京智源大会』开幕式以及基础模型前沿技术论坛

『2023北京智源大会』开幕式以及基础模型前沿技术论坛 文章目录 一. 黄铁军丨智源研究院院长1. 大语言模型2. 大语言模型评测体系FlagEval3. 大语言模型生态(软硬件)4. 三大路线通向 AGI(另外2条路径) 二. Towards Machines that can Learn, Reason, and Plan(杨立昆丨图灵奖得…

超级AI大脑:全能型学习助理

有句话说在知识的海洋里渴死&#xff0c;说的就是面对海量知识不知如何获取 进而可以理解为不知道如何学习 而现在我们迎来了一个超级大脑&#xff0c; 一个几乎帮助你深度学习的全能助理。 你可以询问超级AI大脑任何内容&#xff0c;回答常常会令你惊喜&#xff1a; 文案创作&…

前沿系列--Transform架构[架构分析+代码实现]

文章目录 前言总体架构总体任务使用 输入部分EmbeddingPosition Encodingwhy实现 注意部分注意力机制/自注意力掩码作用如何工作形状解释 完整实现多头注意力实现Norm处理 FeedForward 以及连接编码器解码器中间层组装 输出层模型组装总结 前言 Transform这玩意的大名我想就不…

android 如何修改系统语言

最近有需求需要去编程实现根据选择去修改系统语言, 根据查资料看setting源码有两种方式, 在这里记录一下. 修改系统语言或者控制系统开关机等操作即使声明了对应权限还是会报错, 这是因为这些操作需要系统权限,这里也会介绍如何使用android studio对应用进行系统签名. 一.如何…

goland 界面变成中文 修改回英文界面

新版本会自动装中文插件 主界面 文件->设置 打开 设置对话框 点击 插件 选择已安装 取消勾选 中文插件 确定 重新启动即可 恢复到原始的英文界面

Android多语言切换/适配——以英语为例

近期在做一个背单词APP来作为毕业设计&#xff0c;在app里面想设计一个切换语言为英语的功能&#xff0c;记录一下本次实现的效果以及步骤。 文章目录 实现效果中文模式英文模式 实现原理实现步骤1、创建相关的value文件夹和string.xml文件2、 在对应的string文件中选择合适的翻…

Android 10.0修改语言设置简体中文(中国)为简体中文(中国大陆)

Android Q中 Settings的语言设置选择列表中简体中文下&#xff0c;默认显示为中国、香港、台湾和新加坡&#xff1a; 如果想修改其显示为中国大陆&#xff0c;就必须修改ICU资源的配置。 ICU ICU 是开源项目&#xff0c; 提供了最新的unicode标准&#xff0c;字符集转换&…

设置日语输入法遇到的各种问题

一旦开始学习日语&#xff0c;就忍不住想在自己的电脑上输入日文&#xff0c;按照网上的各种说法&#xff0c;将win10自带的输入法添加了日语的语言包之后&#xff0c;还有各种小问题&#xff0c;于是又在网上各种搜索&#xff0c;花了不少时间。在此整理一下日语输入遇到的各种…

postman设置成中文

介绍: Postman一款非常流行的API调试工具。其实&#xff0c;开发人员用的更多。因为测试人员做接口测试会有更多选择&#xff0c;例如Jmeter、soapUI等。不过&#xff0c;对于开发过程中去调试接口&#xff0c;Postman确实足够的简单方便&#xff0c;而且功能强大。用户在开发…

postman怎么设置中文

很多小伙伴想问postman怎么如何设置中文?&#xff0c;但问题这个小工具没有人开发&#xff0c;期待业内大神开发一个吧。下面给大家分享下postman设置中文遇到的问题&#xff0c;一起来学习下吧。 postman怎么设置中文 postman设置中文方法 1.进入postman官网&#xff0c;可以…

【Android进阶】17、设置中文:语言地区的本地化、国际化

文章目录 为了国际化的需求我们设置中文版和英文版两个版本的 res/values/strings.xml,通过设置地区,让os自动找对应版本。 在 res 下添加 strings.xml,设置 Locale 为中文,效果如下: 生成后的文件如下图: 其实文件放置在 res/values-zh/strings.xml 中,如下: 在 res/…

百模大战,谁是下一个ChatGPT?

“不敢下手&#xff0c;现在中国还没跑出来一家绝对有优势的大模型&#xff0c;上层应用没法投&#xff0c;担心押错宝。”投资人Jucy&#xff08;化名&#xff09;向光锥智能表示&#xff0c;AI项目看得多、投的少是这段时间的VC常态。 ChatGPT点燃AI大爆炸2个月中&#xff0…

什么软件可以文字转语音?这些软件值得收藏

我们的第一感觉是视觉&#xff0c;第二感觉是听觉&#xff0c;当我们不方面使用视觉来获取信息的时候&#xff0c;常常都会使用听觉来获取信息。比如在做家务的时候&#xff0c;我们就可以在旁边播放有声读物&#xff0c;这样子即可以做家务&#xff0c;又可以获取知识内容等。…

录音转文字app有哪些?可以试试这几款录音转文字助手

你知道怎么将手机上的录音文件转换成文字内容吗&#xff1f;生活中我们有时需要记录一些较长的活动内容&#xff0c;手头却没有纸笔&#xff0c;只能先利用手机的录音功能将其记录下来&#xff0c;之后再进行处理。那大家知道手机要怎么将录音文件转文字吗&#xff1f;还在一边…

哪些录音转文字免费软件好用?分享这三款好用的软件

(UC自媒体)录音转文字免费软件哪个好&#xff1f;这三款值得收藏 (CSDN)哪些录音转文字免费软件好用&#xff1f;分享这三款好用的软件 嘿&#xff0c;小伙伴们&#xff0c;如果你是一名正在学习外语的学生&#xff0c;那么一定会遇到听不懂英语音频里面陌生词汇的难题。常反…

录音转文字电脑软件有哪些?录音如何转文字?

现在越来越多的小伙伴步入职场工作&#xff0c;会有自己新的工作方式和规划。有的人为了能让自己尽快适应快节奏的工作状态&#xff0c;会苦思冥想的寻求应对方法。例如有的人会从会议纪要开始着手&#xff0c;即把会议上的音频内容转换为文字、文档输出。那么你们知道录音转文…