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

目录

[1. 实现会话管理](#1. 实现会话管理)

[2. 实现注册 API](#2. 实现注册 API)

[2.1 密码加密](#2.1 密码加密)

[2.2 实现登录 API](#2.2 实现登录 API)

[2.3 实现退出登录](#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 是内置功能.

bash 复制代码
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,把对应的会话删除掉即可。

相关推荐
旖旎夜光23 分钟前
LeetCode 852:山脉数组的峰顶索引(二分查找) —— 题解
数据结构·c++·算法·leetcode·二分查找
程与留44 分钟前
05_Qt 核心模块概览——Qt Core、Gui、Widgets、Quick 的职责划分
c++·qt
dogstarhuang1 小时前
OpenAI GPT-5.6 降价后如何重算 API 账单?多模型路由与成本治理实战
服务器·网络·人工智能·大模型·api·ai应用开发·接口管理
苏宸啊1 小时前
linux网络编程udp服务器和客户端代码编写(echo版本和字典版本)
linux·网络
buhuizhiyuci1 小时前
【QT-百日筑基篇】修真世界摸爬滚打多年,终于黄天不负有心人,突破炼器中期——常用控件QWight的属性
开发语言·c++·qt·gui·图形化
奇树谦3 小时前
HDD 为什么适合顺序大文件读写:从 RAID 5 到 RAID 50 的原理与性能分析
linux·运维·网络
嵌入式阿蔡3 小时前
Linux_01:交叉编译与开发环境实战——从单片机跨到 Linux 的第一道坎
linux·运维·网络·单片机·嵌入式硬件·嵌入式实时数据库
_Narcissus_5 小时前
动态规划初探(含完整代码实现)
c语言·数据结构·c++·算法·动态规划·背包问题·最短路径
雷电小将军5 小时前
诡秘之主手游占卜家序列加点 诡秘之主手游占卜家怎么加点
服务器·网络·游戏·电脑·玩游戏
陈皮波比茶5 小时前
Python项目实战-网络机器人(爬虫)
开发语言·网络·爬虫·python·机器人