@theoptimalpartner/jwt-auth-validator
Version:
JWT token validation package with offline JWKS validation and Redis-based token revocation support
71 lines • 3.61 kB
TypeScript
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