当前位置: 首页 > 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()方法,每次都会先使旧验证码失效,再生成新验证码。最终效果是:无论调用多少次,用户​​只能使用最新发送的验证码​​,旧验证码无法重复使用。

相关文章:

  • 如何实现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量化大模型实验
  • 电路中零极点的含义
  • 九江宜春领导干部任前公示,3人拟提名为县(市、区)长候选人
  • 《上海市建筑信息模型技术应用指南(2025版)》发布
  • 紫光集团原董事长赵伟国一审被判死缓
  • “异常”只停留在医院里,用艺术为“泡泡宝贝”加油
  • 中国海警舰艇编队5月14日在我钓鱼岛领海巡航
  • 经济日报:美国滥施汽车关税损人不利己