@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
50 lines • 1.46 kB
TypeScript
import { Algorithm } from 'jsonwebtoken';
import type { Logger } from '@iota-big3/sdk-types';
export interface JWTConfig {
accessTokenSecret: string;
refreshTokenSecret: string;
accessTokenExpiry?: string;
refreshTokenExpiry?: string;
algorithm?: Algorithm;
issuer?: string;
audience?: string | string[];
clockTolerance?: number;
}
export interface TokenPayload {
userId: string;
email?: string;
roles?: string[];
permissions?: string[];
sessionId?: string;
[key: string]: any;
}
export interface TokenPair {
accessToken: string;
refreshToken: string;
accessTokenExpiry: Date;
refreshTokenExpiry: Date;
}
export interface DecodedToken extends TokenPayload {
iat: number;
exp: number;
iss?: string;
aud?: string | string[];
jti?: string;
}
export declare class JWTService {
private config;
private revokedTokens;
private logger?;
constructor(config: JWTConfig, logger?: Logger);
generateTokenPairAsync(payload: TokenPayload): Promise<TokenPair>;
verifyAccessTokenAsync(token: string): Promise<DecodedToken>;
verifyRefreshTokenAsync(token: string): Promise<DecodedToken>;
refreshTokensAsync(refreshToken: string): Promise<TokenPair>;
revokeToken(): void;
revokeSession(): void;
private isTokenRevoked;
private generateJTI;
private decodeToken;
cleanupRevokedTokens(): void;
}
//# sourceMappingURL=jwt-service.d.ts.map