认证 API
用户认证和授权相关的 API 端点。
🔐 认证方式
| 方式 | Header | 说明 |
|---|---|---|
| JWT Token | Authorization: Bearer {token} | 用户身份令牌 |
| API Key | X-API-Key: {api_key} | 应用级密钥 |
📝 API 端点
POST /api/auth/login
Drupal 用户登录,获取 JWT Token。
请求:
{
"username": "user1",
"password": "password123"
}响应:
{
"success": true,
"data": {
"access_token": "eyJ0eXAiOiJKV1QiLCJh...",
"refresh_token": "dGhpcyBpcyBhIHJlZnJl...",
"expires_in": 3600,
"user": {
"uid": 2,
"name": "user1",
"roles": ["project_owner"]
}
}
}POST /api/auth/refresh
刷新 JWT Token。
请求:
{
"refresh_token": "dGhpcyBpcyBhIHJlZnJl..."
}GET /api/auth/me
获取当前用户信息。需要 JWT Token 认证。
响应:
{
"uid": 2,
"name": "user1",
"mail": "user1@example.com",
"roles": ["project_owner"],
"tenant_id": "tenant_7375b0cd",
"projects": [...]
}POST /api/auth/logout
用户登出。
GET /api/auth/permissions
获取当前用户权限列表。
POST /api/auth/change-password
修改密码。
请求:
{
"current_password": "oldpassword",
"new_password": "newpassword123"
}👥 角色管理
GET /api/auth/roles
获取当前用户角色列表。
GET /api/auth/available-roles
获取可分配的角色列表。
POST /api/auth/assign-role
分配角色(需要管理权限)。
请求:
{
"user_id": 3,
"role": "project_editor"
}POST /api/auth/revoke-role
撤销角色(需要管理权限)。
🔑 实体用户认证
POST /api/v1/baas/password/verify
实体用户密码验证(前端应用登录)
用于验证实体表中的用户密码,适用于前端应用的用户登录场景。
请求头:
X-BaaS-Tenant-ID: tenant_7375b0cd
X-BaaS-Project-ID: tenant_7375b0cd_project_6888d012be80c
Authorization: Bearer YOUR_JWT_TOKEN (或 X-API-Key)请求体:
{
"credentials": {
"email": "user1@example.com",
"password": "password123"
}
}响应(成功):
{
"success": true,
"data": {
"id": 1,
"name": "张三",
"email": "user1@example.com",
"avatar": 123,
"created": 1704067200
},
"message": "密码验证成功"
}响应(失败):
{
"success": false,
"error": "密码错误",
"code": "INVALID_PASSWORD"
}说明:
- 验证存储在实体表(如
baas_856064_users)中的用户密码 - 需要通过请求头指定租户和项目
- 密码字段使用加密存储,自动验证哈希值
- 验证成功返回完整用户信息(不含密码)
错误代码:
| 错误代码 | 说明 |
|---|---|
MISSING_TENANT_PROJECT | 缺少租户或项目信息 |
USER_NOT_FOUND | 用户不存在 |
INVALID_PASSWORD | 密码错误 |
USER_TABLE_NOT_FOUND | 用户表不存在 |
📖 相关资源
Last updated on