UNPKG

taskflow-ai

Version:

TaskFlow AI - 智能PRD文档解析与任务管理助手,支持多模型AI协同、MCP编辑器集成,专为开发团队设计的CLI工具

84 lines (83 loc) 2.73 kB
/** * 认证中间件 * 处理JWT token验证、用户权限检查等认证相关功能 */ import { Request, Response, NextFunction } from 'express'; import { ConfigManager } from '../../infra/config'; /** * 用户角色枚举 */ export declare enum UserRole { ADMIN = "admin", PROJECT_MANAGER = "project_manager", DEVELOPER = "developer", VIEWER = "viewer" } /** * 用户信息接口 */ export interface AuthUser { id: string; email: string; name: string; role: UserRole; permissions: string[]; iat?: number; exp?: number; } /** * 扩展Request接口以包含用户信息 */ declare module 'express-serve-static-core' { interface Request { user?: AuthUser; } } /** * JWT认证中间件 * @param configManager 配置管理器 */ export declare function authMiddleware(configManager: ConfigManager): (req: Request, res: Response, next: NextFunction) => void; /** * 权限检查中间件 * @param allowedRoles 允许的角色列表 */ export declare function authorize(allowedRoles: UserRole[] | string[]): (req: Request, res: Response, next: NextFunction) => void; /** * 权限检查中间件(基于具体权限) * @param requiredPermissions 需要的权限列表 */ export declare function requirePermissions(requiredPermissions: string[]): (req: Request, res: Response, next: NextFunction) => void | Response<any, Record<string, any>>; /** * 资源所有者检查中间件 * @param resourceIdParam 资源ID参数名 * @param resourceType 资源类型 */ export declare function requireOwnership(resourceIdParam: string, resourceType: string): (req: Request, res: Response, next: NextFunction) => Promise<void | Response<any, Record<string, any>>>; /** * API密钥认证中间件 * @param configManager 配置管理器 */ export declare function apiKeyAuth(configManager: ConfigManager): (req: Request, res: Response, next: NextFunction) => Response<any, Record<string, any>> | undefined; /** * 可选认证中间件(允许匿名访问) */ export declare function optionalAuth(configManager: ConfigManager): (req: Request, res: Response, next: NextFunction) => void; /** * 生成JWT token * @param user 用户信息 * @param configManager 配置管理器 */ export declare function generateToken(user: Omit<AuthUser, 'iat' | 'exp'>, configManager: ConfigManager): string; /** * 验证token * @param token JWT token * @param configManager 配置管理器 */ export declare function verifyToken(token: string, configManager: ConfigManager): AuthUser; /** * 刷新token * @param token 旧token * @param configManager 配置管理器 */ export declare function refreshToken(token: string, configManager: ConfigManager): string;