Skip to Content
🚀 Drubase One v1.1 - 基于 Drupal 11 的多租户后端即服务平台
DocsAPI 参考认证 API

认证 API

用户认证和授权相关的 API 端点。

🔐 认证方式

方式Header说明
JWT TokenAuthorization: Bearer {token}用户身份令牌
API KeyX-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