聚合短信API,手机验证登录

今天在项目中遇到了一个需要手机验证登录的需求,在这里简单的记录一下。聚合短信API,手机验证登录
首先需要在聚合平台里面进行公司资质认真 飞机票:https://www.juhe.cn/docs/api/id/54
认证成功后 点击我的接口

继续在这里插入图片描述
进行短信模板审核

通过后,就可以还是写代码了
写一个类,连接聚合API

import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.net.URL;
import java.net.URLConnection;
import java.net.URLEncoder;public class SMSCode {//把手机号码和随机验证码传递过来public static boolean sendCode(String phoneNumber, String code) throws Exception {String str_code = URLEncoder.encode("#code#=" + code, "UTF-8");//包装好URL对象,将接口地址包装在此对象中URL url = new URL("http://v.juhe.cn/sms/send?mobile=" + phoneNumber +"&tpl_id=这里写短信模板id&tpl_value=" + str_code + "&key=这里写前面的key}");/* 短信模板id */                            /* 短信应用接口的key *///打开连接,得到连接对象URLConnection connection = url.openConnection();//向服务器发送连接请求connection.connect();//获得服务器响应的数据BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(connection.getInputStream(), "UTF-8"));StringBuffer buffer = new StringBuffer();String lineDate = null;while((lineDate = bufferedReader.readLine()) != null) {buffer.append(lineDate);}bufferedReader.close();if(buffer.toString().indexOf("\"error_code\":0")>=0 ) {return true;}return false;}}

下面发送验证码的controller和登录的controller

import com.example.demo.test.SMSCode;
import com.example.demo.test.removeAttrbute;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpSession;
import java.util.Random;
import java.util.regex.Pattern;@RestController
public class SMSCodeController {@RequestMapping("/sendCode")public String sendCode(HttpServletRequest req)  {String phoneNumber=req.getParameter("phoneNumber");if (phoneNumber.trim().equals("") || phoneNumber == null) {System.out.println("手机号码为空!");} // 手机号码格式判断if (!Pattern.matches("^1[3|4|5|7|8][9]\\d{9}$", phoneNumber)) {System.out.println("手机格式错误!");}StringBuffer buffer = new StringBuffer();Random random = new Random();for (int i = 0; i < 6; i++) {buffer.append(random.nextInt(10));}try {if (!SMSCode.sendCode(phoneNumber, buffer.toString())) {return  "发送失败";} else {// 将验证码、手机号码和当前的系统时间存储到session中req.getSession().setAttribute("code", buffer.toString());req.getSession().setAttribute("number", phoneNumber);req.getSession().setAttribute("time", System.currentTimeMillis());}} catch (Exception e) {// TODO Auto-generated catch blocke.printStackTrace();}return  "ok";}@RequestMapping("/logn")public String Logn(HttpServletRequest req)  {String phoneNumber=req.getParameter("phoneNumber");String code=req.getParameter("code");//从session中拿出数据HttpSession session = req.getSession();String code_session = (String)session.getAttribute("code");String number = (String)session.getAttribute("number");Long time = (Long)session.getAttribute("time");//清除session中的数据session.removeAttribute("code");session.removeAttribute("number");session.removeAttribute("time");if(code_session == null || code_session.trim().equals("")) {System.out.println("验证码为空!");return "验证码为空" ;}//验证码登录时效10分钟if((System.currentTimeMillis() - time) / 1000 / 60 >= 0) {System.out.println("验证码已过期!");return "验证码已过期!" ;}//发送验证码的手机号码和登录时得到手机号码必须一致if(!number.trim().equalsIgnoreCase(phoneNumber)) {System.out.println("手机号码不一致!");return "手机号码不一致!";}return  "ok";}}

至此,调用这个controller,就可以发送了验证了

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

如若内容造成侵权/违法违规/事实不符,请联系瞎胡闹网进行投诉反馈,一经查实,立即删除!

相关文章

用ChatGPT和六顶帽思考法帮助自己更好地决策和解决问题

当我们在解决复杂问题时&#xff0c;我们常常陷入单一视角的状态。创造性思维领域的先驱爱德华德博诺&#xff0c;提出了六顶帽思考法[1]&#xff0c;这意味着我们可以从六个不同的视角来思考一个问题&#xff0c;以实现高水平决策和解决问题。 每一顶“帽子”代表不同的视角。…

发现一个相当好的食物热量计算器!

厄&#xff0c;这两天没怎么吃东西&#xff0c;感觉瘦了些。特意去网上找了一个食物热量计算器&#xff0c;把自己吃的那点儿放进去算了一下&#xff0c;哇&#xff0c;远远低于每天实际消耗的热量&#xff01; 我琢磨着&#xff0c;怎么把这东西给下载下来用呢&#xff1f;

计算每日摄入量

1.每周减重 自重*0.7% 2.蛋白质量 每磅*&#xff08;0.8 ~1&#xff09; 3.坚持计划&#xff0c;多负荷训练 参考&#xff1a;https://zhuanlan.zhihu.com/p/44725585 每日总消耗量&#xff08;TDEE&#xff09;&#xff1a;由三个因素构成 1.摄食生热效应&#xff1a; …

每天坚持慢跑30分钟,一个月身体会有什么变化?

如果我告诉你身材不会有什么大变化&#xff0c;你是不是会绝望&#xff1f;但这是事实&#xff01; 保持坚持跑步习惯的人有两种&#xff1a; 第1种是纯粹热爱跑步&#xff0c;追求身体的长久健康&#xff0c;活力保持。 第2种是为了减肥&#xff0c;回归匀称标准的身材。 …

企业微信加密消息体_企业微信和个人微信有什么区别?个人微信可以接收企业微信消息吗?...

对于微信大家一定不陌生&#xff0c;它是当代集社交&#xff0c;支付等多种功能于一体的软件&#xff0c;使用人群多&#xff0c;范围广&#xff0c;但是现在随着公司业务的交流发展&#xff0c;越来越多人开始使用企业微信&#xff0c;那么你知道企业微信与个人微信有什么不同…

[NLP]LLM 训练时GPU显存耗用量估计

以LLM中最常见的Adam fp16混合精度训练为例&#xff0c;分析其显存占用有以下四个部分&#xff1a; GPT-2含有1.5B个参数&#xff0c;如果用fp16格式&#xff0c;只需要1.5G*2Byte3GB显存, 但是模型状态实际上需要耗费1.5B*1624GB. 比如说有一个模型参数量是1M&#xff0c;在…

power law

power law 中文有的叫幂率&#xff0c; 有的叫长尾理论。 一张图可以说明其思想&#xff1a; 再想power law和2:8原则是不是有一些相似。懒得算了&#xff0c;这两个都是形式化的描述&#xff0c;具体数字没有太大意义。 很奇妙的一点是&#xff0c;这个世界其实有时候就是这…

【Linux】进程信号之信号的处理

进程信号 三 一、信号的处理时机二、内核态与用户态1、内核态与用户态的转化2、重谈进程地址空间 三、信号的处理1、一般信号的处理流程2、捕捉信号的处理流程3、信号捕捉函数sigaction 一、信号的处理时机 在前面我们讲过信号产生和保存以后&#xff0c;我们知道进程对于产生…

power related

android的wake_lock介绍 拒绝Wakelock提高续航!安卓省电优化攻略 http://www.cnblogs.com/GnagWang/ ??who

2020-5-5

问题 D: 洁净无瑕 时间限制: 1 Sec 内存限制: 128 MB [提交] [状态] 题目描述 小X是一位富豪&#xff0c;酷爱收藏宝石。 在他的收藏柜中&#xff0c;从左到右依次摆放着各种形态不一的钻石。为了评价一颗钻石的美观程度&#xff0c;小X为每颗钻石赋予了一个洁净度ai。 小X…

day-5

1、模块 定义&#xff1a;模块&#xff0c;用一砣代码实现了某个功能的代码集合。 本质就是.py结尾的python文件&#xff08;变量&#xff0c;函数&#xff0c;类&#xff0c;逻辑&#xff09; 例&#xff1a;test.py 模块名&#xff1a;test类似于函数式…

5 Series Solutions

文章目录 this chapter, blend power series with solving ordinary differential equations. a class of linear (homogeneous) differential equations admitting solutions that can be represented as a power series. Due to the technicality, only second order. All…

Isolated power 板级小功率电源

电源模块体积单位通常使用砖来命名1/4砖、1/8砖 全砖&#xff1a;116.8*61.0*12.7mm 半砖&#xff1a;61.0*57.9*12.7mm 四分之一砖&#xff1a;57.9*36.8*8.1mm 八分之一砖&#xff1a;57.9*22.9*10.4mm 砖式DC/DC转换器的工作环境越来越恶劣&#xff0c;尽管这些模块产品…

linux umask:文件访问权限控制预设值

1. umask 定义 在 linux 系统中&#xff0c;umask 被定义在 /etc/profile 配置文件中&#xff0c;有一段 shell 脚本对 umask 是这么定义的。在 shell 会话输入命令&#xff1a; $ cat /etc/profile # 查看 /etc/profile 配置文件的内容 if [ $UID -gt 199 ] &&…

iOS 13.2升级后:iPhone、iPad频繁杀后台,怎么解决呢?

编辑&#xff5c;排版&#xff5c; 宅哥技术转载请联系商务合作给你开白名单来源&#xff1a;宅哥技术&#xff08;zg_jishu&#xff09; ---------♥--------- 杀后台 现在很多小伙伴都更新到了iOS13.2版本&#xff0c;更新完后很多朋友都说系统杀后台好严重&#xff0c;什么是…

分享如何升级macOS Catalina

了解如何下载和安装最新版 Mac 操作系统 macOS Catalina。 macOS Catalina 让您喜爱的所有 Mac 体验都更进一步。在三个全新的 Mac 应用程序中体验音乐&#xff0c;电视和播客。在 Mac 上畅玩您最喜欢的 iPad 应用。拿起 iPad 和 Apple Pencil 扩展您的工作空间&#xff0c;释放…

LeetCode700. 二叉搜索树中的搜索

700. 二叉搜索树中的搜索 文章目录 [700. 二叉搜索树中的搜索](https://leetcode.cn/problems/search-in-a-binary-search-tree/)一、题目二、题解方法一&#xff1a;迭代方法二&#xff1a;递归 带main函数测试用例 一、题目 给定二叉搜索树&#xff08;BST&#xff09;的根节…

升级鸿蒙系统效果,鸿蒙系统初体验 全方位体验升级[多图]

鸿蒙系统是近期华为发布的&#xff0c;这个的话&#xff0c;在更新了以后&#xff0c;就能够看到了&#xff0c;不过只是对于某些适配机型来说是这样&#xff0c;其他的话&#xff0c;是没有的&#xff0c;很多用户都十分的好奇&#xff0c;也是在观望当中&#xff0c;这个的话…

android6.1内存,iPhone 6为何坚持1GB内存?安卓太坑爹!

这个问题说简单也简单&#xff0c;说复杂也很复杂。有人该回答了&#xff1a;“是苹果优化好呗&#xff01;”说苹果好&#xff0c;里面本身就带着几分“Android呵呵”的意思。而事实似乎并非如此。iOS设备采取了与Android不同的内存垃圾回收机制&#xff0c;因此两者对运存容量…

iPad Pro 11 英寸(2021 年)评测:比笔记本电脑更奢华

Apple 的高端中型 iPad 还没有完全准备好取代您的 MacBook&#xff0c;但我们不否认它是一款出色的平板电脑。那么 11 英寸iPad Pro具体性能如何呢&#xff1f;它能替代MacBook吗&#xff1f; iPad Pro 11in (2021, M1) 全面评测 苹果公司于 2020 年夏季开始&#xff0c;处理器…