taskflow-ai
Version:
TaskFlow AI - 智能PRD文档解析与任务管理助手,支持多模型AI协同、MCP编辑器集成,专为开发团队设计的CLI工具
84 lines (83 loc) • 2.73 kB
TypeScript
/**
* 认证中间件
* 处理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;