登录注册时手机验证码发送的实现

短信验证

首先需要通过个人账户获得 授权码(id、密码),再通过这些信息获得服务通过对阿里云网址 : https://www.aliyun.com/获得短信发送的权限(sms):

  1. 登录 / 注册 阿里云
  2. 点击 AccessKey 管理
  3. 创建用户包括(用户组用来添加权限,用户是具体用来操作的账号)
  4. 为新建的用户添加权限
开通阿里云短信服务
  1. 首先到阿里云提供的短信服务中去;
    在这里插入图片描述

  2. 其次进入到国内消息,编写自己想要发送的信息模板提交审核(需要等待审核);

在这里插入图片描述

  1. 添加签名(需要等待审核);

在这里插入图片描述

编写测试代码
  1. 安装Java SDK

    可以通过以下两种方式安装Java SDK;

    1)导入Maven依赖,适用于使用Maven管理的Java项目;

    <dependency><groupId>com.aliyun</groupId><artifactId>aliyun-java-sdk-core</artifactId><version>4.5.16</version>
    </dependency><dependency><groupId>com.aliyun</groupId><artifactId>aliyun-java-sdk-dysmsapi</artifactId><version>1.1.0</version>
    </dependency>
    

    2)在集成开发环境中导入JAR文件,适用于使用Eclipse或IntelliJ作为集成开发环境的项目;

  2. 测试

// 注意这里所有的包都是 aliyuncs 包下的
@Test
void contextLoads() {// 这里的 AccessKey ID 、 Secret就是 阿里云用户对于的值,复制过来即可DefaultProfile profile = DefaultProfile.getProfile("cn-hangzhou", "<accessKeyId>", "<accessSecret>");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");// 上面不需要改// 自定义参数 :// 手机号,这里 Value 就填用户的手机号,实际应用须要从表单获取request.putQueryParameter("PhoneNumbers", "138XXXXXXXX");// 签名,这里的 Value 就是在阿里云上申请的 签名request.putQueryParameter("SignName", "XXXX");// 模板,这里的 Value 就是在阿里云上申请的模板的 模版CODE 值request.putQueryParameter("TemplateCode", "XXXX");// 验证码,真实应用需要自动构建验证码HashMap<String, Object> map = new HashMap<>();map.put("code", 112233);request.putQueryParameter("TemplateParam", JSONObject.toJSONString(map));try {CommonResponse response = client.getCommonResponse(request);System.out.println(response.getData());} catch (ServerException e) {e.printStackTrace();} catch (ClientException e) {e.printStackTrace();}
}
真正的用例
  1. 用springboot框架,建立一个Maven项目;
  2. 编写接口类;
public interface SendSmsService {/*** 用于发送短信* @param phoneNumber :手机号* @param templateCode :模板编号* @param code :验证码* @return 是否发送成功*/public boolean send(String phoneNumber, String templateCode, Map<String, Object> code);
}
  1. 编写实现类;就是上面测试代码

  2. 编写配置文件,可以调用redis,连接redis:application.yml

server:port: 8088
# 配置 Redis
spring:redis:host: 192.168.142.120port: 6379password: 123456
  1. 编写调用接口,利用redis数据库;
@RestController
@CrossOrigin // 跨域的支持
public class SmsApiController {@Autowiredprivate SendSmsService sendSmsService;@Autowiredprivate RedisTemplate redisTemplate;@GetMapping("send/{phone}")public String sendSms(@PathVariable("phone") String phoneNumber){// 调用发送发放(模拟真实业务,整合 Redis)// 判断当前手机号是否存储在 Redis 中// 如果没有则发送短信// 如果有表示上一个验证码还未过期,不用发送String code = (String) redisTemplate.opsForValue().get(phoneNumber);if (!StringUtils.isEmpty(code)){return "[手机号: "+phoneNumber + "],[验证码: " + code +"],还未过期";}// 生成验证码code = UUID.randomUUID().toString().substring(0,6);HashMap<String, Object> map = new HashMap<>();map.put("code",code);sendSmsService.send(phoneNumber,"XXXX",map);// 如果发送成功,就放入 Redisif (isSend){redisTemplate.opsForValue().set(phoneNumber,code,5, TimeUnit.MINUTES);return "[手机号: "+phoneNumber + "],[验证码: " + code +"],发送成功";}else {return "[手机号: "+phoneNumber + "],[验证码: " + code +"],发送失败";}}}

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

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

相关文章

CAPTCHA验证码无法加载/验证失败(UDebug)解决办法

问题 一些网站要机器验证但没有加载出验证按钮,如: UDebug… 通常是需要引用 [ www.google.com/recaptcha ] 在国内通常访问不了 so 解决 安装(开源)浏览器插件 Gooreplacer GiHub源码库 Chrome商店 Edge扩展商店 Firefox 安装好后,点击扩展中的 单击 Config Rules/配置…

为什么自学 Python 很久却还是不会用?

打个恰当又不恰当的比方&#xff0c;为什么考过科目一却还是不会开车&#xff1f; 理论上会了不是会了&#xff0c;在脑力里想象着速度与狂飙是没用的&#xff0c;不然赵括也不会纸上谈兵谈的被秦军射杀&#xff0c;小命儿都没了。 对于 Python 来说也是一样&#xff0c;编程…

程序员,职场上请远离这种人!

对有些职场人来讲&#xff0c;甩锅就是一种生存手段。 01.从大学打篮球说起 上大学的时候喜欢打篮球&#xff0c;然后我又特别喜欢抢篮板&#xff0c;经常是跳起来的时候没事&#xff0c;落下来的时候偶尔会踩到别人的脚上&#xff0c;于是左脚经常性崴脚&#xff0c;这是背景…

后台登录界面和首页

router 管理组件 在index.vue api 管理 接口&#xff0c;获取后暴露出来 $http store vuex 统一管理数据状态 user 和 menu $store.state.user.info app.vue 为主业渲染 login.vue 为注册页渲染 目录标题 logoinwebpack 配置 logo.vue with elementlogo.js import element-ui …

服务器运行打开一直转圈,快速解决登录PC端一直转圈数据读取中,不能进入正常聊天界面...

快速解决登录PC端一直转圈数据读取中,不能进入正常聊天界面 大家都在查&#xff1a;正在连接服务器,请等待.正在连接服务器&#xff0c;请等待.快速解决登录PC端一直转圈数据读取中,怎么连不上怎么一直连不上 怎么一直连接不上 怎么连接不上不能进入正常聊天界面,数据读取中&am…

信创JAVAWEB的相关记录

前提&#xff0c;由于最近信创 不少客户要求服务器上的也需要国产化&#xff0c; 服务器上用的是 统信UOS 具体版本为&#xff1a;Linux TAXC1507 4.19.0-loongson-3-desktop #4114 SMP Wed Sep 1 15:23:48 CST 2021 mips64 GNU/Linux 这个版本的JDK需要上龙芯的官网上下载专…

助力金融信创生态建设,麒麟信安亮相2021中国国际金融展信创专题展

10月13日至14日&#xff0c;以“聚力金融信创&#xff0c;筑牢数字新基建”为主题的2021中国国际金融展信创专题展&#xff08;长三角&#xff09;在上海举行。来自长三角地区多个金融监管机构、金融机构、科技企业的领导和代表观展参会&#xff0c;共同推动金融信创工作的高质…

信创电脑运行Windows程序

一、使用环境&#xff1a; 龙芯3A5000 UOS 专业版 v20 1050 二、wine介绍 1、在linux上安装wine&#xff0c;可以实现运行Windows exe程序&#xff0c;但并不是所有程序都可以运行. 2、wine最新版本为wine7&#xff0c;本次测试环境使用wine5 3、wine官网链接&#xff1a;W…

信创环境经典版SuerMap iManager ARM版部署流程

一、环境 操作系统&#xff1a;银河麒麟kylin V10CPU&#xff1a;鲲鹏920SuperMap iManager 10.2.1硬件&#xff1a;4H32G机器磁盘分区格式建议如下&#xff08;请严格按照如下&#xff0c;减少后期有用/目录资源不够&#xff0c;导致Docker调度失败&#xff0c;还需要重新更换…

全方位解析《中国电信行业信创建设偏好报告》

电信作为信创28重点行业之一&#xff0c;电信、移动、联通三大电信运营商早在2020年开始&#xff0c;就陆续进行业务招标、集采国产服务器、建立信创实验室&#xff0c;抓紧高速、全面地进行信创布局。 随着数字经济时代的到来&#xff0c;各大运营商对于信息安全的关注度与日…

灵雀云ACP成功通过金融信创生态实验室适配验证

近日&#xff0c;灵雀云全栈云原生开放平台ACP&#xff08;以下简称灵雀云ACP&#xff09;成功通过了金融信创生态实验室适配验证&#xff0c;在金融科技领域的技术实力和专业水平得到了权威认可。 金融信创生态实验室&#xff08;以下简称“实验室”&#xff09;是由中国人民银…

“麒”聚信创,共赢未来——信创解决方案分享会(首场)成功举办

11月18日上午&#xff0c;“麒”聚信创&#xff0c;共赢未来——信创解决方案分享会&#xff08;首场&#xff09;于线上举行。本次会议由麒麟信安主办&#xff0c;百信信息技术有限公司&#xff08;简称&#xff1a;百信&#xff09;、杭州迪普科技股份有限公司&#xff08;简…

科技云报道:信创基础设施迎来“升级潮”,可持续性架构成关键技术

科技云报道原创。 如果说单一领域的技术突破是河流&#xff0c;信创毫无疑问是汪洋大海。 随着“数字中国”战略的明确&#xff0c;数字化转型进程加速&#xff0c;信创产业成为国家战略布局的重点领域之一&#xff0c;是缩短科技发展周期以及国内外科技差距的一剂良方。 2…

信创办公–基于WPS的EXCEL最佳实践系列 (快速整理繁琐数据)

信创办公–基于WPS的EXCEL最佳实践系列 &#xff08;快速整理繁琐数据&#xff09; 目录 应用背景操作步骤1、把下列家庭住址按省、城区、详细地址&#xff0c;分开2、用分页工具分离出所有员工身份证上的生日3、分离出下列手机型号中的颜色 应用背景 在我们的日常工作环境中有…

信创入围认证详解

信创是一个统称概念&#xff0c;实际是把现有与信息技术相关的行业结合在一起&#xff0c;命名为“信息技术应用创新产业”&#xff0c;简称“信创”。一般来说&#xff0c;信创包括基础硬件、基础软件、应用软件、信息安全四大板块。其中&#xff0c;基础硬件主要包括&#xf…

九州云入选2021中国信创500强

3月19日&#xff0c;《互联网周刊》发布了“2021中国信创500强”榜单&#xff0c;该榜单基于iB、iP、iF等衡量企业信创实力的关键指标进行综合评价。九州云凭借卓越的技术研发实力、产品服务能力以及积极创新与布局&#xff0c;成功登榜&#xff01; 信创产业&#xff0c;据《中…

信创环境适配

信创环境适配 此次适配的服务器为麒麟v10&#xff0c;数据库使用人大金仓&#xff0c;中间件为tonweb7 文章目录 信创环境适配前言一、环境准备二、组件适配KingbaseNacosActiviti7XxlJob 三、Tongweb7替换TomcatJava代码调整Vue项目打包部署Web容器下部署多个服务 总结 前言 …

期货行业首批信创试点单位转型实践|信创专题

实践亮点 期货行业首批试点单位&#xff08;金融行业第二期&#xff09;全部选择 SmartX 作为单一超融合供应商进行基础架构信创转型&#xff0c;并通过验收。可灵活选择海光或鲲鹏服务器部署&#xff0c;涵盖办公系统、一般业务系统、灾备&#xff08;CTP 主席异地灾备&#…

信创大数据平台容灾项目

一、项目方案 齐鲁银行自2017年开始建设大数据平台&#xff0c;为全行提供的各类数据服务与全行业务深度融合&#xff0c;大数据服务已成为推动业务发展不可或缺的环节。大数据平台为全行各类业务提供标准化风险数据服务&#xff0c;支撑全行从零售到消贷、从公司到普惠、从线上…

信创国产化解决方案

第一部分 什么是信创 一、什么是信创&#xff1f; 先从概念上来看&#xff0c;信创全称信息技术应用创新产业&#xff0c;和国产化很像&#xff0c;但信创的目的是围绕国产CPU&#xff0c;形成完整的IT生态。究其原因&#xff0c;是国内在IT方面&#xff0c;特别是底层技术都没…