@allan1361/iota-big3-sdk-middleware
Version:
🏆 A+ Grade Certified Enterprise Middleware Framework - Phase 3 Certified (90/100) with advanced resilience patterns, comprehensive type safety, and production-ready observability
57 lines • 1.9 kB
TypeScript
import { AuthUser, TypedRequest } from '@iota-big3/sdk-types';
import type { FastifyInstance, FastifyRequest } from 'fastify';
import { AuthConfig, MiddlewareFunction } from './types-clean';
export interface AuthenticatedRequest extends TypedRequest {
user?: AuthUser;
token?: string;
authMethod?: 'jwt' | 'api-key' | 'session';
}
export interface AuthenticatedFastifyRequest extends FastifyRequest {
user?: {
id: string;
email?: string;
roles?: string[];
permissions?: string[];
industry?: string;
metadata?: {
lastLogin?: string;
loginCount?: number;
preferences?: Record<string, unknown>;
};
};
token?: string;
authMethod?: 'jwt' | 'api-key' | 'session';
}
export declare class AuthMiddleware {
private config;
private isEnabled;
private metrics;
constructor(config?: AuthConfig);
private extractToken;
private extractApiKey;
private extractApiKeyFastify;
private isPublicPath;
private validateToken;
private validateApiKey;
middleware(): MiddlewareFunction;
getHealthStatus(): {
status: string;
enabled: boolean;
};
fastifyPlugin(): (fastify: FastifyInstance) => Promise<void>;
getMetrics(): typeof this.metrics;
private generateRequestId;
private logSuccessfulAuthentication;
private logAuthenticationFailure;
private logAuthenticationError;
private logPublicPathAccess;
private logSuccessfulAuthenticationFastify;
private logAuthenticationFailureFastify;
private logAuthenticationErrorFastify;
private logPublicPathAccessFastify;
resetMetrics(): void;
}
export declare function createAuthMiddleware(config?: AuthConfig): MiddlewareFunction & {
fastify: (fastify: FastifyInstance) => Promise<void>;
};
//# sourceMappingURL=auth-middleware-clean.d.ts.map