跳到主要内容

用户端点

使用 /users 端点来注册用户、查看当前身份,并管理 SkillFlaw 用户账号。

POST /api/v1/users/ 是公开注册端点;本页其余路由都属于已认证的 /api/v1/users 路由。

注意:该 API 中的用户 ID 是整数,不是 UUID。

对于租户范围的用户管理操作,至少要带上 tenant-id 头。 超级用户可以在没有 scope 头的情况下调用管理类接口。

添加用户

创建一个新用户账号。该路由是公开的,不要求 API Key。 后端会根据 NEW_USER_IS_ACTIVE 设置决定 is_active,并在注册后创建默认项目。


_10
curl -X POST \
_10
"$SKILLFLAW_URL/api/v1/users/" \
_10
-H "Content-Type: application/json" \
_10
-d '{
_10
"username": "newuser2",
_10
"password": "SecurePassw0rd!"
_10
}'

获取当前用户


_10
curl -X GET \
_10
"$SKILLFLAW_URL/api/v1/users/whoami" \
_10
-H "accept: application/json" \
_10
-H "x-api-key: $SKILLFLAW_API_KEY"

列出全部用户

获取分页用户列表:


_10
curl -X GET \
_10
"$SKILLFLAW_URL/api/v1/users/?skip=0&limit=10&search=admin&sort_by=username&sort_order=asc" \
_10
-H "accept: application/json" \
_10
-H "x-api-key: $SKILLFLAW_API_KEY" \
_10
-H "tenant-id: $TENANT_ID"

支持的筛选条件包括:

  • search
  • is_active
  • is_superuser
  • is_locked
  • is_sso
  • enable_login

可排序字段包括:

  • id
  • username
  • nickname
  • is_active
  • is_superuser
  • is_locked
  • is_sso
  • enable_login
  • mobile
  • email

更新用户


_12
curl -X PATCH \
_12
"$SKILLFLAW_URL/api/v1/users/101" \
_12
-H "Content-Type: application/json" \
_12
-H "x-api-key: $SKILLFLAW_API_KEY" \
_12
-H "tenant-id: $TENANT_ID" \
_12
-d '{
_12
"nickname": "Knowledge Curator",
_12
"email": "newuser2@example.com",
_12
"is_active": true,
_12
"enable_login": false,
_12
"api_key": "user-api-key-101"
_12
}'

更新规则要点:

  • 更新别人需要用户管理修改权限
  • 更新自己资料可以走设置权限路径
  • 普通用户不能提升 is_superuser
  • 在这个接口里提交 password 仅支持超级用户场景
  • 常规密码修改应走重置密码
  • 如果把 enable_login 设为 false,必须同时提供唯一且非空的 api_key

重置密码


_10
curl -X PATCH \
_10
"$SKILLFLAW_URL/api/v1/users/101/reset-password" \
_10
-H "Content-Type: application/json" \
_10
-H "x-api-key: $SKILLFLAW_API_KEY" \
_10
-d '{
_10
"current_password": "OldPassw0rd!",
_10
"password": "NewPassw0rd!"
_10
}'

规则要点:

  • 重置自己的密码时需要 current_password
  • 重置别人的密码需要用户管理修改权限
  • 新密码至少 8 位,且必须包含大小写字母、数字和特殊字符
  • 新密码不能与当前密码相同

删除用户


_10
curl -X DELETE \
_10
"$SKILLFLAW_URL/api/v1/users/101" \
_10
-H "accept: application/json" \
_10
-H "x-api-key: $SKILLFLAW_API_KEY" \
_10
-H "tenant-id: $TENANT_ID"

规则要点:

  • 不能删除自己的账号
  • 删除别人需要用户管理删除权限
  • 非超级用户不能删除超级用户账号