基于 ThinkPHP 8.0 构建

为你的应用
提供用户管理后端

不用从零搭建用户系统。部署即用,为你的小程序、APP、网站提供完整的注册登录、数据存储、团队协作 API。

适合场景:微信小程序 移动应用 Web 项目

你可以用它做什么
小程序用户系统
Web 应用用户管理
用户数据存储
团队协作
数据分享

不用再重复造轮子

每个开发者都应该把时间花在业务上,而不是每次都要从头写用户系统。

没有这个系统

  • 自己写注册、登录、密码找回
  • 自己设计数据库存储用户数据
  • 自己实现 Token 认证与安全管理
  • 每次新项目都要重写一遍
  • 团队协作功能从零开始开发

有这个系统

  • 部署即用,API 开箱可用
  • 自定义字段,灵活存储任意数据
  • 内置 Token 认证、加密、频率控制
  • 多项目隔离,一套服务支撑多个业务
  • 团队、成员、权限管理全部内置

涵盖你需要的所有能力

从用户注册到团队协作,完整的后端链路。

用户认证

账号密码注册登录、微信小程序登录、密码找回、邮箱验证

自定义数据字段

在后台自由配置用户数据字段,支持文本、数字、日期、JSON 等类型

团队协作

创建团队、邀请码/公开加入、多级角色权限、成员管理

数据分享

生成分享码分享用户数据,控制使用次数和有效期

数据安全

字段级 RSA 加密、CSRF 防护、IP 限制、频率控制、登录保护

多项目管理

一个系统管理多个项目,数据完全隔离,独立配置

三步接入你的应用

获取 API Key 后,几行代码就能开始使用。

1

部署系统

下载源码,配置数据库,部署到你的服务器

2

创建项目 & 配置字段

在后台创建项目,自定义你需要的用户数据字段

3

在你的应用中调用 API

使用 API Key 和 Token,调用注册、登录、数据读写接口

// 1. 配置 API Key
const apiKey = "your_api_key";

// 2. 用户登录
const res = await fetch('/api/auth/login', {
  method: 'POST',
  headers: { 'X-API-Key': apiKey },
  body: JSON.stringify({ account, password })
});
const { token } = await res.json();

// 3. 获取用户数据
await fetch('/api/user/field-values', {
  headers: { 'X-API-Key': apiKey, 'X-User-Token': token }
});

完整的 RESTful API

统一的响应格式,清晰的接口设计。

POST /api/auth/register 注册
POST /api/auth/login 登录
POST /api/auth/wechat 微信登录
GET /api/user/field-values 获取数据
PUT /api/user/field-values 更新数据
PATCH /api/user/field-values 部分更新
POST /api/share/generate 生成分享
POST /api/team 创建团队

项目结构与运行架构

基于 ThinkPHP 8.0 的多租户用户管理后端,分层清晰、安全可靠。

目录结构
📁app/
📁controller/
控制器层:admin 后台 / api 公开接口
📄api/BaseApi.php
📄api/UserController.php
📄api/AuthController.php
📄api/TeamApi.php
📄api/DataController.php
📄api/ShareController.php
📄api/Guest.php
📁middleware/
中间件层:认证、限流、日志、安全
🔐ApiAuth.php — API Key + Token 认证
RateLimit.php — 频率限制
📝ApiLogMiddleware.php — 请求日志
🛡️Cors.php / SecurityHeaders.php
🔒AdminAuth.php — 后台 RBAC 认证
AutoCheckPermission.php — 自动权限检查
📁model/
模型层:数据表 ORM 映射
👤User / Project / Team / TeamMember
📊UserData / UserDataField / UserDataShare
🏷️UserDataFieldGroup / GuestToken
📁repository/
仓储层:数据网关(支持动态数据库)
🔗ProjectDataGateway.php
📁service/
服务层:业务逻辑封装
🔑AuthService / HmacTokenService
📧EmailService / CacheService
📁common/
公共层:响应格式、异常、加密工具
📦ApiResponse / ApiException / AesEncryption
请求处理流程
📱
客户端请求
中间件管道
SecurityHeaders Cors InputValidation ApiAuth RateLimit ApiLog
⚙️
路由 → 控制器
业务处理
BaseApi 基类 ProjectDataGateway 字段验证 & 加密 异常捕获 & 日志
📤
统一 JSON 响应
认证流程
1

获取 API Key

后台创建 Project,获得唯一 api_key

2

用户注册/登录

POST /api/auth/login 或 register,返回 user_token

3

携带 Token 调用接口

Header: X-API-Key + X-User-Token 双重认证

4

Guest 模式(可选)

未登录时通过 guest_token 访问公开数据

数据模型
Project api_key · name · db_config · encryption
1 : N
User token · account · project_id · status
1 : N
UserData user_id · field_name · field_value
N : 1
UserDataField field_name · type · is_encrypted · group_id
安全机制
认证
API Key + User Token 双重认证

每个请求必须携带有效的 X-API-Key 和 X-User-Token

加密
AES/RSA 字段级加密

敏感数据可配置 AES 对称加密或 RSA 非对称加密

限流
IP 维度频率限制

防止暴力破解和滥用,支持 Redis/File 双模式

权限
RBAC 角色权限控制

后台管理员按角色分配菜单和数据操作权限

审计
完整 API 日志记录

每次请求自动记录参数、响应、耗时、异常堆栈

IP 控制
IP 白名单 / 黑名单

支持全局 IP 访问控制策略配置

技术栈
后端框架 ThinkPHP 8.0 语言 PHP 8.1+ 数据库 MySQL / 动态 DB 缓存 Redis(可选) 管理后台 Vue 3 + Element Plus API 格式 RESTful JSON 部署 Nginx + PHP-FPM