aws-apigw-authorizer
Version:
AWS Lambda Authorizer for API Gateway
30 lines (29 loc) • 1.65 kB
TypeScript
import * as jwtValidator from './jwt-validator';
import * as AWSLambda from 'aws-lambda';
export declare type PolicyBuilderFunction = (event: AWSLambda.CustomAuthorizerEvent, principalId: string, decodedToken?: Jwt) => AWSLambda.PolicyDocument | Promise<AWSLambda.PolicyDocument>;
export declare type ContextBuilderFunction = (event: AWSLambda.CustomAuthorizerEvent, principalId: string, decodedToken?: Jwt) => AWSLambda.AuthResponseContext | Promise<AWSLambda.AuthResponseContext> | void;
export declare type AuthChecksFunction = (event: AWSLambda.CustomAuthorizerEvent, principalId: string, decodedToken?: Jwt) => void | Promise<void>;
export declare type PrincipalId = string;
export declare type JwtPrincipalIdSelectorFunction = (event: AWSLambda.CustomAuthorizerEvent, decodedToken?: Jwt) => PrincipalId | Promise<PrincipalId>;
export interface AuthorizerConfig {
policyBuilder?: PolicyBuilderFunction;
contextBuilder?: ContextBuilderFunction;
authChecks?: AuthChecksFunction;
jwtPrincipalIdSelector?: JwtPrincipalIdSelectorFunction;
}
export declare type Jwt = jwtValidator.Jwt;
export declare class ApiGatewayAuthorizer {
private policyBuilder;
private contextBuilder;
private authChecks;
private basicAuthenticationEnabled;
private jwtAuthenticationEnabled;
private principalIdSelectorFunction;
constructor(authorizerConfig?: AuthorizerConfig);
private assertSourceIp;
private authorize;
private deny;
private log;
private determineAuthorization;
handler(event: AWSLambda.CustomAuthorizerEvent, _context: AWSLambda.Context, callback: AWSLambda.Callback): Promise<void>;
}