google-sa-id-token
Version:
Fetch ID Token for Service Account when running in GCloud
31 lines (30 loc) • 1.09 kB
TypeScript
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;
}