UNPKG

@theoptimalpartner/jwt-auth-validator

Version:

JWT token validation package with offline JWKS validation and Redis-based token revocation support

71 lines 3.61 kB
import { DecodedToken, ValidationResult, EnrichedValidationResult, ValidatorConfig } from './types.js'; export declare class JWTValidator { private jwksService; private blacklistService?; private apiKeyValidator?; private userDataService?; private redisService?; private config; private initialized; constructor(config: ValidatorConfig); initialize(): Promise<void>; validate(token: string, options?: { apiKey?: string; forceSecure?: boolean; enrichUserData?: boolean; requireAppAccess?: boolean; }): Promise<EnrichedValidationResult>; validateToken(token: string, forceSecure?: boolean): Promise<ValidationResult>; validateWithApiKey(token: string, apiKey: string, options?: { forceSecure?: boolean; enrichUserData?: boolean; }): Promise<EnrichedValidationResult>; validateWithAppAccess(token: string, apiKey: string, options?: { forceSecure?: boolean; enrichUserData?: boolean; }): Promise<EnrichedValidationResult>; validateEnriched(token: string, apiKey?: string, options?: { forceSecure?: boolean; }): Promise<EnrichedValidationResult>; validateTokenEnriched(token: string, apiKey?: string, forceSecure?: boolean): Promise<EnrichedValidationResult>; validateTokenWithApiKey(token: string, apiKey?: string, forceSecure?: boolean): Promise<ValidationResult>; validateTokenWithAppId(token: string, apiKey: string, forceSecure?: boolean): Promise<ValidationResult>; validateTokenEnhanced(token: string, apiKey?: string, forceSecure?: boolean): Promise<ValidationResult>; validateTokenSecure(token: string): Promise<ValidationResult>; validateTokenBasic(token: string): Promise<ValidationResult>; validateAccessToken(token: string): Promise<ValidationResult>; validateIdToken(token: string): Promise<ValidationResult>; extractTokenFromHeader(authHeader: string): string | null; extractApiKeyFromHeader(apiKeyHeader: string): string | null; extractApiKeyFromHeaders(headers: Record<string, string>): string | null; getTokenInfo(token: string): object | null; isTokenExpired(token: string): boolean; getTimeToExpiry(token: string): number; validateMultipleTokens(tokens: string[]): Promise<ValidationResult[]>; decodeToken(token: string): DecodedToken | null; revokeToken(token: string): Promise<void>; revokeUserTokens(userId: string, tokens: string[]): Promise<void>; getCacheStats(): import("./types.js").JWKSStats; getBlacklistStats(): Promise<import("./types.js").TokenBlacklistStats | null>; getClientSecret(): string | undefined; hasClientSecret(): boolean; calculateSecretHash(identifier: string): string; getUserPermissions(userId: string): Promise<import("./types.js").UserPermissions | null>; getUserOrganizations(userId: string): Promise<import("./types.js").UserOrganization[]>; getUserApplications(userId: string): Promise<import("./types.js").Application[]>; getComprehensiveUserData(userId: string): Promise<{ permissions: import("./types.js").UserPermissions | null; organizations: import("./types.js").UserOrganization[]; applications: import("./types.js").Application[]; }>; getUserDataStats(): Promise<import("./types.js").UserDataStats | null>; clearUserCache(userId: string): void; isUserDataEnabled(): boolean; disconnect(): Promise<void>; diagnoseToken(token: string): { config: any; payload: any; issues: string[]; }; } //# sourceMappingURL=jwt-validator.d.ts.map