@teamsight/flight
Version: 
Lambda life cycles
14 lines (13 loc) • 989 B
TypeScript
import { Context, CustomAuthorizerEvent, CustomAuthorizerResult, PolicyDocument } from "aws-lambda";
import { IJsonWebTokenManager, IPayload } from "../../jwt/json-web-token-manager";
import { AuthorizerHandler } from "./authorizer-handler";
export declare abstract class Authorizer<TPayload extends IPayload, TAuthContext> extends AuthorizerHandler {
    private jwtHelper;
    protected abstract audience: string;
    constructor(jwtHelper: IJsonWebTokenManager);
    run(event: CustomAuthorizerEvent, context: Context): Promise<CustomAuthorizerResult>;
    protected abstract createAuthorizerContext(payload: TPayload): Promise<TAuthContext>;
    protected abstract doAuthorization(event: CustomAuthorizerEvent, decoded: TPayload, customContext: TAuthContext): Promise<void>;
    protected createResult(effect: "Allow" | "Deny", arn: string, customContext?: any, principalId?: string): CustomAuthorizerResult;
    protected buildPolicy(effect: string, resource: any): PolicyDocument;
}