用户端点
使用 /users 端点来注册用户、查看当前身份,并管理 SkillFlaw 用户账号。
POST /api/v1/users/ 是公开注册端点;本页其余路由都属于已认证的 /api/v1/users 路由。
注意:该 API 中的用户 ID 是整数,不是 UUID。
对于租户范围的用户管理操作,至少要带上 tenant-id 头。
超级用户可以在没有 scope 头的情况下调用管理类接口。
添加用户
创建一个新用户账号。该路由是公开的,不要求 API Key。
后端会根据 NEW_USER_IS_ACTIVE 设置决定 is_active,并在注册后创建默认项目。
_10curl -X POST \_10 "$SKILLFLAW_URL/api/v1/users/" \_10 -H "Content-Type: application/json" \_10 -d '{_10 "username": "newuser2",_10 "password": "SecurePassw0rd!"_10 }'
获取当前用户
_10curl -X GET \_10 "$SKILLFLAW_URL/api/v1/users/whoami" \_10 -H "accept: application/json" \_10 -H "x-api-key: $SKILLFLAW_API_KEY"
列出全部用户
获取分页用户列表:
_10curl -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"
支持的筛选条件包括:
searchis_activeis_superuseris_lockedis_ssoenable_login
可排序字段包括:
idusernamenicknameis_activeis_superuseris_lockedis_ssoenable_loginmobileemail
更新用户
_12curl -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
重置密码
_10curl -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 位,且必须包含大小写字母、数字和特殊字符
- 新密码不能与当前密码相同
删除用户
_10curl -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"
规则要点:
- 不能删除自己的账号
- 删除别人需要用户管理删除权限
- 非超级用户不能删除超级用户账号