AWS|API 自定义授权器——Token 类型

by 穿卡芦苇 #AWS手册

上级总览文章:➦ API Gateway 用 Lambda 自定义 Authorizer

介绍

Lambda Event Playload : Token

这个 Token,可以是自定义的 Token,要自己写验证程序。

也可以是客户端通过 Cognito Userpool 账户登录后获得的 ID Token。 客户端提交请求时,通过 Header 的 Authorization(Bearer Token) 字段传递。先经过 Cognito 验证,通过后,才会继续向 Authorizer 传递。

Event Playload 内容

给 Authorizer 函数传递的 event 参数内容示例 (➦ via AWS)

{
    "type":"TOKEN",
    "authorizationToken":"{caller-supplied-token}",
    "methodArn":"arn:aws:execute-api:{regionId}:{accountId}:{apiId}/{stage}/{httpVerb}/[{resource}/[{child-resources}]]"
}
def lambda_handler(event, context, callback):
    try:
        token = event.authorizationToken
        if token == 'allow':
            callback(None, generatePolicy('user', 'Allow', event.methodArn))
        elif token == 'deny':
            callback(None, generatePolicy('user', 'Deny', event.methodArn))
        elif token == 'unauthorized':
            callback("Unauthorized")
        else:
            callback("Error: Invalid token")
    except Exception as e:
        callback("Error: " + str(e))

完整步骤索引文章:➦ API Gateway 用 Lambda 自定义 Authorizer


(正文结束。芝士就是力量!