UNPKG

aws-apigw-authorizer

Version:
30 lines (29 loc) 1.65 kB
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>; }