@teamsight/flight
Version:
Lambda life cycles
35 lines (34 loc) • 970 B
TypeScript
export interface IJsonWebTokenStore {
getSecretForId(id: string): Promise<string>;
}
export interface ICreateJWTOptions {
tokenId: string;
secret: string;
audience: string;
expiresInHours: number;
payload: any;
subject?: string;
}
export interface IPayload {
sub: string;
aud?: string;
exp?: number;
iat?: number;
header?: {
kid?: string;
alg?: string;
typ?: string;
};
}
export interface IJsonWebTokenManager {
createServer(): string;
create(opts: ICreateJWTOptions): string;
process<TPayload extends IPayload>(token: string, audience: string): Promise<TPayload>;
}
export declare class JsonWebTokenManager implements IJsonWebTokenManager {
private tokenStore;
constructor(tokenStore: IJsonWebTokenStore);
create(opts: ICreateJWTOptions): string;
createServer(): string;
process<TPayload extends IPayload>(token: string, audience: string): Promise<TPayload>;
}