UNPKG

google-sa-id-token

Version:

Fetch ID Token for Service Account when running in GCloud

31 lines (30 loc) 1.09 kB
import { Token, TokenPayload, TokenRaw } from './token.types'; export declare type LoggerFn = (type: string, payload: Record<string, unknown>) => void; export declare type Logger = { info?: LoggerFn; error?: LoggerFn; }; export declare type GoogleSaIdTokenOptions = { serviceAccountEmail?: string; defaultAudience?: string; tokenExpiryMargin?: number; logger?: Logger; }; export declare class GoogleSaIdToken { readonly sa: string; readonly tokenExpiryMargin: number; readonly defaultAudience?: string; protected readonly logger?: Logger; private tokenCache; constructor({ serviceAccountEmail, tokenExpiryMargin, defaultAudience, logger, }?: GoogleSaIdTokenOptions); private noAudError; fetchIdTokenNoCache(audience?: string): Promise<Token>; private addFulfilHandler; private fetchIdTokenCached; fetchIdTokenDecoded(audience?: string): Promise<{ raw: TokenRaw; payload: TokenPayload; }>; fetchIdToken(audience?: string): Promise<TokenRaw>; isTokenExpired({ exp }: TokenPayload): boolean; }