UNPKG

bb-inspired

Version:

Core library for BB-inspired NestJS backend

67 lines (66 loc) 1.6 kB
export interface AuthUser { id: string | number; username?: string; email?: string; roles: string[]; permissions?: string[]; tenantId?: string | number; sessionId?: string; [key: string]: any; } export interface AuthRequest { username: string; password: string; tenantId?: string | number; rememberMe?: boolean; } export interface ExternalAuthOptions { baseUrl: string; apiKey?: string; endpoints: { validate: string; verify: string; refresh: string; logout?: string; }; timeout?: number; retries?: number; cache?: { enabled: boolean; ttl: number; }; } export interface AuthToken { accessToken: string; refreshToken?: string; expiresIn: number; tokenType: string; } export interface AuthValidationResult { isValid: boolean; user?: AuthUser; error?: string; } export interface AuthVerificationResult { isValid: boolean; token?: AuthToken; error?: string; } export interface AuthMiddlewareOptions { externalAuth?: ExternalAuthOptions; jwt: { secret: string; ignoreExpiration?: boolean; }; excludePaths?: string[]; errorHandling?: { throwUnauthorized?: boolean; logErrors?: boolean; }; } export interface AuthProvider { authenticate(credentials: AuthRequest): Promise<AuthToken>; validateToken(token: string): Promise<AuthValidationResult>; refreshToken(refreshToken: string): Promise<AuthToken>; logout(token: string, userId?: string | number): Promise<boolean>; }