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

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

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.xdnf.cn/news/6483.html

相关文章:

  • Linux系统发布.net core程序
  • 电脑自带画图工具,提取颜色
  • 软件工程之软件产品的环境
  • P1260 工程规划
  • 记录算法笔记(2025.5.15)二叉树的层序遍历
  • RK3588 桌面系统配置WiFi和蓝牙配置
  • SQL优化总结
  • vue使用vite, 渲染glb模型时报错
  • 【GESP真题解析】第 9 集 GESP 一级 2023 年 9 月编程题 2:小明的幸运数
  • 检测按键抖动的时间
  • ivx 开发者如何通过 BI 引擎实现应用功能精准优化
  • 深光-谷歌TV TADA/奈飞Netflix/亚马逊Prime Video/YouTube等测试外包服务
  • 【蓝桥杯嵌入式】【模块】四、按键相关配置及代码模板
  • 【数据结构】队列
  • 如何在WooCommerce中设置Stripe
  • 了解光学影像
  • Cinema4D 26.014
  • 软考软件评测师——计算机组成与体系结构(CPU指令系统)
  • SPL做量化---DMI(动向指标)
  • jq安装与使用
  • 麒麟系统进入bios的方法
  • 4.6/Q1,GBD数据库最新文章解读
  • 基于YOLOv5的葡萄病害智能识别系统开发实践
  • 从单线程到多线程:项目实战web Worker线程使用总结
  • idea常用插件
  • 通义灵码 2.5.4 版【**编程智能体**】初体验
  • worldquant rank函数
  • PH热榜 | 2025-05-15
  • # 基于Python的多摄像头监控与OCR识别系统
  • 修改一个表的相关操作语句