创建项目目录结构
我们先创建一个空文件夹,取名 totp
在 totp 里创建四个文件夹:
totp/console : 存放后台 vue 代码
totp/service: 存放 Go 服务端代码
totp/docs: 存放开发文档
totp/nginx: 存放项目布署的 nginx 配置示例
每个目录里添加一个 README.md 描述个文件目录的用途;再在 totp 目录下添加一个 README.md 把整体项需求放在这里;
编写各个目录里的 README 文件
totp/README.md
# TOTP 认证服务
## 项目简介
这是一个基于时间的一次性密码(TOTP)认证服务系统,为内部项目和外部项目提供安全、可靠的二步验证解决方案。系统采用微服务架构,提供完整的 API 接口和管理后台,支持多项目、多用户的集中式 TOTP 密钥管理。
## 主要功能
管理后台
用户管理:系统管理员可以创建和管理后台用户
项目管理:为每个用户创建独立项目,每个项目生成唯一的 API Key 和 Secret
监控仪表盘:实时查看 API 调用统计和系统状态
## API 服务
### 提供项目方调用的开放 API 服务
- TOTP 用户创建:为项目创建二步验证用户,以 Project ID + Email 作为唯一标识
- 二维码生成:自动生成 TOTP 绑定二维码链接,支持 Auth App(如 Google Authenticator)
- 验证码验证:实时验证用户提供的 TOTP 验证码
- 用户管理:支持 TOTP 用户的查询、更新和禁用
### 提供管理后台调用的 API 服务
- 后台用户登录:项目初始化后,超级管理员登录;
- 系统用户管理
- 用户及项目管理
- 项目用户的信息管理
- 审计日志查看
## 集成特性
多项目支持:每个项目拥有独立的 API 凭证和配置
必填邮箱:Email 作为用户标识的必要组成部分
灵活集成:项目方自行决定何时触发二步验证
标准化协议:基于 RFC 6238 TOTP 标准
## 目录说明
- /console : 管理后台的前端目录,该目录下放管理后台的前端代码及打包文件
- /service : 服务端 API 代码目录,该目录下放服务端代码及打包文件
- /nginx : 服务上线后的 nginx 配置文件目录
- /docs: 项目开发文档目录
totp/console/README.md
# 管理后台(Console)
TOTP 服务的管理后台前端(Vue3 + Vite + TypeScript)。
## 目标
在 `totp/console` 落地一个可持续迭代的管理后台前端工程,对接 `totp/service` 的 `/admin/v1` API。
## 技术栈
- Vue 3 + Vite + TypeScript
- vue-router(静态路由)
- Pinia(token、me、全局状态)
- Element Plus(UI 组件)
- TailwindCSS(布局/细节样式)
- axios(HTTP 客户端)
totp/service/README.md
# TOTP Go Project
这个目录用于开发 TOTP 服务端 API(开放 API + 管理后台 API)。
totp/docs/README.md
# 文档索引
本目录存放服务端开发与对接文档。
创建数据表
为了不让 AI 过于自由发挥,我先创建好的数据库的表结构,并把数据表结构导出表结构 SQL 文件放在 totp/docs/sql/database.sql ,让 AI 根据已建好的表,设计 API 服务及后端功能。
数据表主要包含:
- 系统用户:users
- 项目表:projects
- 系统用户凭证:user_totp_credentials
- 项目用户标识:project_user_identiers
- 项目用户凭证:project_user_credentials
- API 访问日志:api_call_logs
- 后台操作审计日志:audit_logs
下一步,我将用这些基础提示信息,让 AI 制定开发计划,搭建项目骨架。