/** * 认证模块 Swagger 文档 * @file swagger-auth.js * @description 用户认证相关的 Swagger API 文档定义 */ // 认证相关的 API 路径定义 const authPaths = { '/api/auth/login': { post: { summary: '用户登录', tags: ['用户认证'], requestBody: { required: true, content: { 'application/json': { schema: { $ref: '#/components/schemas/LoginRequest' } } } }, responses: { 200: { $ref: '#/components/responses/Success' }, 401: { $ref: '#/components/responses/Unauthorized' } } } }, '/api/auth/register': { post: { summary: '用户注册', tags: ['用户认证'], requestBody: { required: true, content: { 'application/json': { schema: { $ref: '#/components/schemas/RegisterRequest' } } } }, responses: { 201: { $ref: '#/components/responses/Created' }, 400: { $ref: '#/components/responses/BadRequest' } } } }, '/api/auth/me': { get: { summary: '获取当前用户信息', tags: ['用户认证'], security: [{ bearerAuth: [] }], responses: { 200: { $ref: '#/components/responses/Success' }, 401: { $ref: '#/components/responses/Unauthorized' } } } }, '/api/auth/validate': { get: { summary: '验证Token有效性', tags: ['用户认证'], security: [{ bearerAuth: [] }], responses: { 200: { $ref: '#/components/responses/Success' }, 401: { $ref: '#/components/responses/Unauthorized' } } } }, '/api/auth/roles': { get: { summary: '获取所有角色', tags: ['用户认证'], security: [{ bearerAuth: [] }], responses: { 200: { $ref: '#/components/responses/Success' } } } }, '/api/auth/users/{userId}/roles': { post: { summary: '为用户分配角色', tags: ['用户认证'], security: [{ bearerAuth: [] }], parameters: [ { name: 'userId', in: 'path', required: true, schema: { type: 'integer' }, description: '用户ID' } ], requestBody: { required: true, content: { 'application/json': { schema: { type: 'object', required: ['roleId'], properties: { roleId: { type: 'integer', description: '角色ID' } } } } } }, responses: { 200: { $ref: '#/components/responses/Success' }, 400: { $ref: '#/components/responses/BadRequest' }, 403: { $ref: '#/components/responses/Forbidden' } } } }, '/api/auth/users/{userId}/roles/{roleId}': { delete: { summary: '移除用户的角色', tags: ['用户认证'], security: [{ bearerAuth: [] }], parameters: [ { name: 'userId', in: 'path', required: true, schema: { type: 'integer' }, description: '用户ID' }, { name: 'roleId', in: 'path', required: true, schema: { type: 'integer' }, description: '角色ID' } ], responses: { 200: { $ref: '#/components/responses/Success' }, 404: { $ref: '#/components/responses/NotFound' } } } } }; // 认证相关的数据模型定义 const authSchemas = { LoginRequest: { type: 'object', required: ['username', 'password'], properties: { username: { type: 'string', description: '用户名或邮箱' }, password: { type: 'string', format: 'password', description: '密码' } } }, LoginResponse: { type: 'object', properties: { success: { type: 'boolean' }, message: { type: 'string' }, token: { type: 'string', description: 'JWT令牌' }, user: { $ref: '#/components/schemas/User' }, permissions: { type: 'array', items: { type: 'string' }, description: '用户权限列表' }, accessibleMenus: { type: 'array', items: { type: 'string' }, description: '可访问的菜单列表' } } }, RegisterRequest: { type: 'object', required: ['username', 'email', 'password'], properties: { username: { type: 'string', description: '用户名' }, email: { type: 'string', format: 'email', description: '邮箱地址' }, password: { type: 'string', format: 'password', description: '密码' } } }, RegisterResponse: { type: 'object', properties: { success: { type: 'boolean' }, message: { type: 'string' }, user: { $ref: '#/components/schemas/User' } } }, Role: { type: 'object', properties: { id: { type: 'integer', description: '角色ID' }, name: { type: 'string', description: '角色名称' }, description: { type: 'string', description: '角色描述' } } } }; module.exports = { authPaths, authSchemas };