in cdk-eventbridge-appsync-oauth/cdk/lib/authorizer/app.py [0:0]
def handler(event, context):
print(event)
# strip out Bearer before working with token
token = event["authorizationToken"].replace("Bearer ", "")
is_authorized = False
signing_key = jwks_client.get_signing_key_from_jwt(token)
try:
data = jwt.decode(
token,
signing_key.key,
algorithms=["RS256"],
options= {
"require": [ "exp", "iat", "sub" ]
}
)
print(data)
is_authorized = (
data["iss"] == "https://cognito-idp.{}.amazonaws.com/{}".format(region, user_pool_id) and
data["sub"] == app_client_id
)
except (DecodeError, ExpiredSignatureError, InvalidTokenError) as err:
print("--- JWT Decode Error: Auth Failure ---")
print(err)
is_authorized = False
except Exception as err:
print(err)
raise err
finally:
print(f"isAuthorized: {is_authorized}")
return {
"isAuthorized": is_authorized,
"deniedFields": []
}