Skip to content

用户模块

用户模块 (/users) 是身份系统的核心。它处理用户账号的生命周期、个人资料管理以及与其他系统实体的关系。

数据模型

User 实体是 RBAC 图中的中心节点。

  • 关系:
    • roles: 与 Role 实体的多对多关系。
    • department: 与 Department 实体的多对一关系。
    • sessions: 与活跃 UserSession 记录的一对多关系。
  • 安全字段:
    • password: 以 bcrypt 哈希形式存储。永远不会在 API 响应中返回。
    • totpSecret: MFA 的加密密钥。
    • recoveryCodes: 加密的备份代码。

用户管理 (/users)

这些接口主要供管理后台 UI 使用。

  • 用户列表 (GET /users)

    • 支持分页 (page, pageSize)。
    • 过滤器:username, realName, deptId (递归), status, roleId
    • 返回用户列表及其关联的部门和角色名称。
  • 创建用户 (POST /users)

    • 逻辑:
      • 检查重复用户名。
      • 对默认密码进行哈希处理(如果未提供)。
      • 连接关联关系(角色、部门)。
  • 更新用户 (PUT /users/:id)

    • 更新个人资料字段。
    • 注意: 出于安全考虑,密码更新通过单独的接口处理。
    • 状态变更: 如果用户被禁用 (status: 0),其活跃会话将立即被撤销。
  • 删除用户 (DELETE /users/:id)

    • 物理删除: 目前执行物理删除(移除记录)。
    • 约束: 无法删除当前登录的用户(自我保护)。

个人资料管理 (/users/me)

这些接口供当前认证用户管理自己的账号。

  • 获取个人资料 (GET /users/me)

    • 返回当前用户的完整个人资料。
    • 包含用于前端访问控制的 permissions 列表(从所有角色合并而来)。
  • 更新个人资料 (PUT /users/me)

    • 允许更新:realName, avatar, homePath
    • 受限: 用户无法通过此接口更改自己的 usernamerolesdepartment
  • 修改密码 (PUT /auth/password)

    • 需要 oldPasswordnewPassword
    • 成功后,该用户的所有其他会话将被撤销。