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

【7. 实现登录注册模块】:实现会话管理、注册/登录/退出 API

目录

1. 实现会话管理

2. 实现注册 API

2.1 密码加密

2.2 实现登录 API

2.3 实现退出登录


1. 实现会话管理

@SPEC.md 根据文档描述,开始开发 Phase 4 中的 "Session/Cookie 认证机制",开发会话管理类,实现会话的管理功能。先不要着急实现登录和注册的 api,并基于 gtest 编写对应功能的单元测试,放至 @tests/unit/ 中

AI 此轮完成下列开发:

  • 实现Session类,表示一个会话
  • 实现SessionManager类,用来管理多个会话(内部通过map来组织多个Session对象)
  • 实现会话管理的单元测试用例。

2. 实现注册 API

@SPEC.md 根据文档描述,实现 Phase 4 中的 "用户注册 API".

这一轮AI主要实现:

  • 新建auth_handler,处理注册请求。
  • 修改router,添加"注册"路由。

2.1 密码加密

我们希望注册逻辑中,数据库存储的应该是密文,所以检查 AI 实现的代码后,如果发现是明文存储,我们可以指定 AI 使用密文进行存储。

首先安装一个成熟的 C++ 密码库,bcrypt 是内置功能.

sudo apt install libbotan-2-dev

另起一个新的会话:

请重构 @backend/service/auth_service.cpp 把其中针对密码进行加密和验证的逻辑,替换成使用 libbotan2-dev 来实现

重构完毕之后,和之前一样,再进行测试用例的设计:

针对上面开发的内容,基于 gtest 设计单元测试,存放到 @tests/unit/ 中.

2.2 实现登录 API

@SPEC.md 根据文档描述,实现 Phase 4 中的 “用户登录 API”.

在这一轮中,AI实现的内容如下:

  • 创建了用于实现加密密码验证的函数
  • 在登录模块中添加登陆处理函数
  • 在路由模块中添加路由

由于注册时使用的密码是加密的,因此登录中,也需要对密码先按照同样的方式加密,再对比密码的密文是否和数据库中存储的密码密文是否相同。

和之前一样,开发完成之后,也需要编写单元测试:

针对上面开发的内容,基于 gtest 设计单元测试,存放至 @tests/unit/ 中,需对验证密码的逻辑和登录功能一同进行测试.

2.3 实现退出登录 API

@SPEC.md 根据文档描述,开发 Phase 4 中 "用户退出登录" 这部分代码,并基于 gtest 设计单元测试,放至 @tests/unit/ 中.

这此 AI 完成了:

  • 修改router,注册路由。
  • 修改auth_handler,实现退出登录接口。
  • 创建单元测试用例。

所谓的退出登录,实现起来其实非常简单,本质上就是根据请求中带有的 session_id,把对应的会话删除掉即可。

http://www.jsqmd.com/news/1305793/

相关文章:

  • Chrome文本批量替换终极指南:3分钟完成网页高效编辑的免费神器
  • Allegro PCB设计效率提升:env文件配置全解析与快捷键定制指南
  • 国内侧压门厂报价哪家低:严选 - 品牌推广大师
  • TMP102数字温度传感器:从I2C接口原理到嵌入式测温实战
  • 游戏引擎矩阵乘法优化:SIMD与转置技术实战
  • 做小程序的公司有哪些?2026四类服务商与项目适配分析
  • ai免费写论文可行吗?实测3款一键生成论文工具,结果有高有低!
  • 架构设计文档撰写指南:从沟通工具到工程蓝图的核心要素与实践
  • 2026年alloy49源头厂家用户力荐,质量参考评选 - mypinpai
  • Spring Boot Admin实战:5分钟搭建微服务统一监控中心
  • 7月运维技术学习路线复盘:从Kubernetes内核到分布式存储的系统性知识结构构建
  • RS-485 设备上云,三种方案的差距比你想象的大——KC25x 技术选型深度解析
  • 2026南京下水道疏通维修靠谱机构榜单 马桶地漏积水反臭倒灌彻底解决攻略 - 宅安选房屋修缮
  • 亲测无人机侦测肩灯,实际使用效果到底怎么样?
  • UE5 C++游戏开发入门:从环境搭建到角色交互实战
  • 学术规范与在线考试:从技术机制到诚信备考的深度解析
  • 分布式电源接入的三相不平衡潮流计算实现
  • 硅藻无机矿物板厂家:核心技术参数与应用价值详解(2026版) - 汇聚至此
  • 2026实力之选:高温合金圆棒现货供应商用户力荐 - mypinpai
  • 刷了100份简历,面试了50个校招生,我想对测试开发的应届生说点真心话
  • 英雄联盟玩家终极指南:如何用League Akari打造全自动游戏体验
  • 消费级五轴CNC:桌面制造新革命,如何将工业能力带入创客空间
  • 武汉榕霖职业技术学校有哪些专业?2026 招生简章及咨询电话 - 武汉中职最新信息发布
  • COCO数据集下载与使用全攻略:从获取到实战应用
  • Pandas日期差计算全解析:从Timestamp到Timedelta的实战指南
  • C++ Proxy模式:实现高性能类型擦除与新一代多态编程
  • 2026西安下水道疏通维修靠谱机构榜单 马桶地漏积水反臭倒灌彻底解决攻略 - 宅安选房屋修缮
  • ChatGPT语音功能技术解析:从ASR到TTS的完整实现与应用
  • 创游世界3D编辑器:轻量级游戏开发工具全解析
  • Android WebView中ERR_UNKNOWN_URL_SCHEME错误:原理、解决方案与避坑指南