UNPKG

ai-auth

Version:

Complete Auth-Agent SDK - Agent authentication for AI developers + OAuth client integration for website developers

58 lines 1.67 kB
"use strict"; /** * Token Manager for OAuth tokens with automatic refresh */ Object.defineProperty(exports, "__esModule", { value: true }); exports.TokenManager = void 0; class TokenManager { accessToken = null; idToken = null; refreshToken = null; tokenType = 'Bearer'; expiresAt = null; scopes = null; /** * Store tokens from OAuth response */ setTokens(tokenResponse) { this.accessToken = tokenResponse.access_token; this.idToken = tokenResponse.id_token || null; this.refreshToken = tokenResponse.refresh_token || null; this.tokenType = tokenResponse.token_type || 'Bearer'; this.scopes = tokenResponse.scope; // Calculate expiry with 60s buffer const expiresIn = tokenResponse.expires_in || 3600; this.expiresAt = Date.now() + (expiresIn - 60) * 1000; } /** * Check if access token is expired */ isExpired() { if (!this.accessToken || !this.expiresAt) { return true; } return Date.now() >= this.expiresAt; } /** * Get current access token * @throws Error if token is expired */ getAccessToken() { if (this.isExpired()) { throw new Error('Access token expired. Please refresh or re-authenticate.'); } return this.accessToken; } /** * Clear all stored tokens */ clear() { this.accessToken = null; this.idToken = null; this.refreshToken = null; this.expiresAt = null; this.scopes = null; } } exports.TokenManager = TokenManager; //# sourceMappingURL=token-manager.js.map