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

讯联云库项目开发技术栈总结(一)

1.如何实现QQ邮件注册账号:

  1. ​前端交互流程​​:

    • 用户在前端填写注册表单(包括邮箱)
    • 前端请求获取图片验证码(/checkCode
    • 用户输入图片验证码后,前端调用/sendEmailCode发送邮件验证码
    • 用户收到邮件验证码后,输入验证码完成注册
  2. ​后端处理流程​​:

  • AccountController处理发送邮件验证码请求

  • 验证图片验证码是否正确(防止机器人)

  • 调用EmailCodeService.sendEmailCode()方法

controller层:

service层: 

 

  • 检查邮箱是否已注册(如果是注册类型)

  • 生成随机5位验证码

  • 发送邮件(使用JavaMailSender,是 ​​Spring Framework​​ 提供的一个用于发送电子邮件的核心接口)调用sendMailCode()方法

 通过这个方法获取发邮件的人

 

调用这个方法让redis读取系统dto模板

尝试从Redis读取(此时返回null),发现为空时,创建默认配置

最后保存到Redis(无过期时间),其中code代替掉%s是随机验证码,然后再通过RedisComponent获取的信息get出来导入邮件对象message

  • 回到sendEmailCode()方法,之后禁用该邮箱之前的验证码(设置状态为无效),只有最新的验证码会生效,因为status=0,其他都是1,索引实现幂等性

幂等性保障​​:
即使多次调用 sendEmailCode()方法,每次都会先使旧验证码失效,再生成新验证码。最终效果是:无论调用多少次,用户​​只能使用最新发送的验证码​​,旧验证码无法重复使用。

http://www.dtcms.com/a/193597.html

相关文章:

  • 如何实现k8s高可用
  • 通义千问-langchain使用构建(二)
  • 5.15本日总结
  • 非常详细的HTTP状态码介绍
  • 验证可行分享-Rancher部署文档
  • 【Linux】gcc从源码编译安装,修改源码,验证修改的源码
  • Linux文件操作系统接口介绍,以及文件描述符的本质
  • javascript —— ! 和 !! 的区别与作用
  • 技术文档不完善,如何促进知识传承
  • 动态规划问题 -- 多状态模型(买股票的最佳时机II)
  • 【GitHub加速地址】
  • 如何在 Windows 命令提示符中创建多个文件夹和多个文件
  • 关于AI人工智能的知识图谱简介
  • 高可靠低纹波国产4644电源芯片在工业设备的应用
  • 2025ICPC陕西省赛题解
  • MySQL 学习(十)执行一条查询语句的内部执行过程、MySQL分层
  • 【SPIN】PROMELA语言编程入门基础语法(SPIN学习系列--1)
  • 在自动化脚本中使用找色实现精确定位目标区域
  • GPU八卡A100使用INT4-W4A16量化大模型实验
  • 电路中零极点的含义
  • AcroForm 文档(打开时)级脚本对比 Excel VBA 参考
  • worldquant rank函数
  • 多智能体Multi-Agent应用实战与原理分析
  • 单片机-STM32部分:16、Git工具使用
  • 理解c++中关键字友元friend的作用
  • 使用nps配置内网穿透加域名解析
  • C++二项式定理:原理、实现与应用
  • nvidia-smi-Failed to initialize NVML: Driver/library version mismatch
  • Newton 迭代
  • Openlayers:如何注册一个新的坐标系统