Auth LambdasΒΆ

Authorizor lambda responses can be generated with helper functions provided by awstin.apigateway.auth. awstin.apigateway.auth.accept(), awstin.apigateway.auth.reject(), awstin.apigateway.auth.unauthorized(), and awstin.apigateway.auth.invalid() will produce properly formatted auth lambda responses.

from awstin.apigateway import auth


def auth_event_parser(event, _context):
    token = event["headers"]["AuthToken"]
    resource_arn = event["methodArn"]
    principal_id = event["requestContext"]["connectionId"]

    return token, resource_arn, principal_id


@lambda_handler(auth_event_parser)
def token_auth(token, resource_arn, principal_id):
    if token == "good token":
        return auth.accept(principal_id, resource_arn)
    elif token == "bad token":
        return auth.reject(principal_id, resource_arn)
    elif token == "unauthorized token":
        return auth.unauthorized()
    else:
        return auth.invalid()