首页 / 技术分享 / 自建 TOTP 微服务 /
为 AI 准备 TOTP 微服务开发提示词文档

为 AI 准备 TOTP 微服务开发提示词文档

码不停提

2026-01-29
34 次浏览
0 条评论

创建一个空文件夹,创建项目目录,创建 README,编辑项目需求和开发规范

自建 TOTP 微服务
AI Agent
分享:

创建项目目录结构

我们先创建一个空文件夹,取名 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 制定开发计划,搭建项目骨架。

评论区 (0)

你需要先 登录 后才能发表评论。
还没有人评论,赶快成为第一个吧。