UNPKG

token-guardian

Version:

A comprehensive solution for protecting and managing API tokens and secrets

56 lines 1.59 kB
import { DefaultRotator } from './services/DefaultRotator'; import { Logger } from '../utils/Logger'; /** * Manages token rotation using different rotation strategies */ export class TokenRotator { logger; rotators; constructor() { this.logger = new Logger('info'); this.rotators = new Map(); this.initializeRotators(); } /** * Initialize default rotators */ initializeRotators() { this.rotators.set('default', new DefaultRotator({ secretKey: process.env.TOKEN_GUARDIAN_SECRET_KEY || 'default-secret-key', expiresIn: 3600, issuer: 'token-guardian', audience: 'default', validationOptions: { verifyExpiration: true, verifyIssuer: true, verifyAudience: true, clockTolerance: 0 } })); } /** * Register a custom rotator */ registerRotator(name, rotator) { this.rotators.set(name, rotator); this.logger.info(`Registered rotator: ${name}`); } /** * Get a registered rotator */ getRotator(name = 'default') { const rotator = this.rotators.get(name); if (!rotator) { throw new Error(`Rotator not found: ${name}`); } return rotator; } /** * Rotate a token using the specified rotator */ async rotateToken(token) { const rotator = this.getRotator('default'); return rotator.rotateToken(token); } } //# sourceMappingURL=TokenRotator.js.map