# 用户中心 ## 1. 功能模块 - 用户注册与登录 - 支持邮箱、手机号注册 - 支持用户名/手机号/邮箱+密码登录 - 支持验证码登录 - 支持第三方登录(如微信、QQ、钉钉、GitHub 等) - 用户信息管理 - 个人信息查看与修改(昵称、头像、联系方式等) - 密码修改 - 绑定/解绑第三方账号 - 实名认证(可选) - 权限与角色管理 - 用户分组与角色分配 - 权限点管理 - 角色权限分配 - 支持多租户 - 安全与认证 - JWT Token 认证 - Session 管理 - 登录日志与安全审计 - 登录设备管理 - 密码找回与重置(邮箱/短信验证码) - 用户状态管理 - 启用/禁用用户 - 注销/删除账号 - 黑名单管理 - 通知与消息 - 站内信 - 邮件/短信通知 - 消息推送 ## 2. 数据库设计(简要) - 用户表(users) - 用户扩展信息表(user_profiles) - 角色表(roles) - 权限表(permissions) - 用户-角色关联表(user_roles) - 角色-权限关联表(role_permissions) - 第三方账号表(user_oauth) - 登录日志表(login_logs) ## 3. API 设计 ### 用户注册与登录 - POST `/api/user/register` 用户注册 - POST `/api/user/login` 用户登录 - POST `/api/user/login/code` 验证码登录 - POST `/api/user/login/oauth` 第三方登录 - POST `/api/user/logout` 用户登出 ### 用户信息管理 - GET `/api/user/profile` 获取个人信息 - PUT `/api/user/profile` 修改个人信息 - POST `/api/user/password/change` 修改密码 - POST `/api/user/password/reset` 密码重置 - POST `/api/user/bind_oauth` 绑定第三方账号 - POST `/api/user/unbind_oauth` 解绑第三方账号 - POST `/api/user/verify_identity` 实名认证 ### 权限与角色管理 - GET `/api/user/roles` 获取当前用户角色 - GET `/api/user/permissions` 获取当前用户权限点 - GET `/api/roles` 获取所有角色列表 - POST `/api/role` 新增角色 - POST `/api/role/assign` 分配角色给用户 - GET `/api/permissions` 获取所有权限点 - POST `/api/permission` 新增权限点 - POST `/api/role/permission/assign` 分配权限点给角色 ### 安全与认证 - GET `/api/user/login_logs` 获取登录日志 - GET `/api/user/devices` 获取登录设备列表 - POST `/api/user/device/logout` 注销指定设备 - POST `/api/user/blacklist/add` 加入黑名单 - POST `/api/user/blacklist/remove` 移除黑名单 ### 用户状态管理 - POST `/api/user/enable` 启用用户 - POST `/api/user/disable` 禁用用户 - POST `/api/user/delete` 注销/删除账号 ### 通知与消息 - GET `/api/user/messages` 获取站内信列表 - POST `/api/user/message/read` 标记消息为已读 - GET `/api/user/notifications` 获取通知列表 --- ### 多租户支持(Multi-Tenancy) #### 1. 租户管理 - GET `/api/tenants` 租户列表(分页、条件查询) - POST `/api/tenants` 新增租户 - GET `/api/tenants/{id}` 获取租户详情 - POST `/api/tenants/{id}/update` 修改租户信息 - POST `/api/tenants/{id}/delete` 删除租户 - POST `/api/tenants/import` 批量导入租户 - GET `/api/tenants/export` 租户数据导出 --- #### 2. 租户下的用户与资源 - GET `/api/tenants/{tenant_id}/users` 获取租户下用户列表(分页) - POST `/api/tenants/{tenant_id}/users/batch` 批量新增租户用户 - GET `/api/tenants/{tenant_id}/roles` 获取租户下角色列表 - POST `/api/tenants/{tenant_id}/roles/batch` 批量新增租户角色 - GET `/api/tenants/{tenant_id}/permissions` 获取租户下权限点列表 - 其他资源(如机构、部门、日志等)均可按 `/api/tenants/{tenant_id}/resource` 方式设计 --- #### 3. 用户与租户关系 - GET `/api/users/{id}/tenants` 获取用户所属租户列表 - POST `/api/users/{id}/tenants/assign` 分配用户到租户 Body: 租户 ID 数组 --- #### 4. 说明 - 所有与租户相关的资源操作均以 `/api/tenants/{tenant_id}/...` 作为前缀,确保数据隔离。 - 超级管理员可管理所有租户,租户管理员仅能管理本租户下资源。 - 用户登录后,需带上当前租户 ID(如 Header: `X-Tenant-Id`)进行资源访问。 如需继续细化某一模块或添加其他接口,请随时告知! ## 4. 安全与合规 - 密码加密存储(如 bcrypt) - 防止暴力破解(登录限流、验证码) - 敏感操作二次验证 - 数据合规(如 GDPR,用户可导出/删除个人数据) ## 5. 其他建议 - 支持多语言 - 支持多终端(Web、App、小程序) - 详细的接口文档(Swagger/OpenAPI) - 单元测试与接口测试覆盖 --- 如需详细到每个接口的参数、返回值、流程图或数据库表结构设计,请告知!