当前位置: 首页 > wzjs >正文

上海网站建筑公司新闻稿发布

上海网站建筑公司,新闻稿发布,婚礼摄影作品网站,天津百度推广开户文章目录 1. 功能概述2. 技术栈3. 实现步骤3.1 短信服务集成3.2 创建短信工具类3.3 验证码生成和存储3.4 控制器实现发送短信验证码手机号+验证码注册短信验证码登录3.5 服务层实现4. 前端实现4.1 API层4.2 手机号注册页面5. 最佳实践6. 总结本文将介绍如何在Spring Boot应用中…

文章目录

    • 1. 功能概述
    • 2. 技术栈
    • 3. 实现步骤
      • 3.1 短信服务集成
      • 3.2 创建短信工具类
      • 3.3 验证码生成和存储
      • 3.4 控制器实现
        • 发送短信验证码
        • 手机号+验证码注册
        • 短信验证码登录
      • 3.5 服务层实现
    • 4. 前端实现
      • 4.1 API层
      • 4.2 手机号注册页面
    • 5. 最佳实践
    • 6. 总结

本文将介绍如何在Spring Boot应用中实现短信验证码注册和登录功能,为用户提供便捷的移动端认证体验。

1. 功能概述

我们将实现以下功能:

  • 手机号+验证码注册
  • 手机号+验证码登录

2. 技术栈

  • Spring Boot 3.2.0
  • 互亿无线短信平台
  • MyBatis Flex
  • JWT

原文链接:https://blog.ybyq.wang/archives/647.html

3. 实现步骤

3.1 短信服务集成

首先,需要在application.properties中配置短信平台信息:

# 短信配置
sms.account=C09251523
sms.apikey=826efdf7322e3c49355428a523c10eec

3.2 创建短信工具类

创建SmsUtil工具类处理短信发送:

@Component
public class SmsUtil {private static final Logger logger = LoggerFactory.getLogger(SmsUtil.class);// 短信发送API地址private static final String SMS_API_URL = "http://106.ihuyi.com/webservice/sms.php?method=Submit";// API账号和密码@Value("${sms.account:C09***523}")private String account;@Value("${sms.apikey:826efdf7322e3c49355***a523c10eec}")private String apiKey;/*** 发送短信验证码* @param phone 手机号* @param code 验证码* @return 发送结果,包含code和msg*/public Map<String, String> sendVerificationCode(String phone, String code) {Map<String, String> result = new HashMap<>();try {// 短信内容String content = "您的验证码是:" + code + "。请不要把验证码泄露给其他人。";// 发送请求String response = sendSmsRequest(phone, content);// 解析结果result = parseXmlResponse(response);// 记录日志if ("2".equals(result.get("code"))) {logger.info("短信发送成功,手机号: {}, 验证码: {}", phone, code);} else {logger.error("短信发送失败,手机号: {}, 错误信息: {}", phone, result.get("msg"));}} catch (Exception e) {logger.error("发送短信验证码异常", e);result.put("code", "0");result.put("msg", "系统异常,短信发送失败");}return result;}// 省略发送请求和解析响应的方法...
}

3.3 验证码生成和存储

UserServiceImpl中实现验证码管理:

// 在UserServiceImpl中
private final Map<String, String> smsCodeCache = new HashMap<>();@Override
public boolean sendSmsCode(String phone, String type) {try {// 校验手机号格式if (!isValidPhoneNumber(phone)) {return false;}// 生成6位随机验证码String code = generateRandomCode(6);// 将验证码存入缓存,实际项目中应使用Redis等缓存服务smsCodeCache.put(phone + ":" + type, code);// 发送短信Map<String, String> result = smsUtil.sendVerificationCode(phone, code);// 检查发送结果return "2".equals(result.get("code"));} catch (Exception e) {logger.error("发送短信验证码失败", e);return false;}
}@Override
public String getSmsCode(String phone, String type) {return smsCodeCache.get(phone + ":" + type);
}@Override
public void removeSmsCode(String phone, String type) {smsCodeCache.remove(phone + ":" + type);
}

3.4 控制器实现

发送短信验证码
@PostMapping("/send/sms")
public ResponseEntity<?> sendSmsCode(@RequestParam @NotBlank @Pattern(regexp = "^1[3-9]\\d{9}$", message = 
http://www.dtcms.com/wzjs/511007.html

相关文章:

  • 大网站服务器维护费用郑州seo排名公司
  • 做国际物流在哪些网站找客户网络营销swot分析
  • 做网站下载那个数据库好网页制作工具有哪些
  • 杭州品牌网站建设以网红引流促业态提升
  • wordpress在本地建站网络推广方法有哪些
  • axure rp 做网站原型免费域名注册官网
  • 网站建设常用的工具南京网站设计优化公司
  • 网站建设怎样布局百度网盘网站入口
  • 电子政务网站建设的特点百度退推广费是真的吗
  • 随州网站建设哪家好360免费建站系统
  • 网站优化排名金苹果下拉sem工资
  • 做淘宝要用的网站职业培训学校加盟
  • 经典门户网站欣赏seminar是什么意思
  • wordpress 数据库迁移aso优化的主要内容为
  • 网站做好了怎么办济南做网站建设的公司
  • 正规网站建设网站制作网站推广公司
  • 网站草图模板百度推荐现在为什么不能用了
  • 网站开发转型计算机培训机构排名
  • 西安网站建设 早晨最近的重大新闻
  • 工信部网站备案信息怎么查询系统seo标题生成器
  • 如何提升网站的转化率全球网站流量排名100
  • 个人可以做几个网站吗最受欢迎的十大培训课程
  • 运营商网站服务密码北京疫情发布不再公布各区数据
  • 合肥专业做网站公司有哪些中国十大电商平台排名
  • wordpress文章回复seo外链要做些什么
  • 建网站logo怎么做网络seo啥意思
  • 中南建设集团招标网站最近的新闻大事10条
  • 360网站怎么做ppt天津企业seo
  • 网站建设策划方案如何写优化设计电子版在哪找
  • 织梦网站模板修改网站友链查询源码