我是API网关的新手 . 我尝试使用"custom authorizer" . 我按照下面的文档并使用了网站提供的示例代码 . https://docs.aws.amazon.com/apigateway/latest/developerguide/apigateway-use-lambda-authorizer.html
“TOKEN类型的Lambda授权者”是有效的 .
curl -v -H 'x-custom-auth: xxxxx" https://xxxxx.execute-api.us-west-1.amazonaws.com/Prod/
对于“REQUEST类型的Lambda Authorizer”,我可以通过aws控制台输入header,queryValue1,stageValue1和accountId进行测试 .
但...
我对“请求类型”感到困惑,并且不知道如何将queryValue1,stageValue1和accountId传递给API网关 .
任何人都可以帮我搞清楚吗?
1 回答
无论您使用哪种类型的授权方,API网关都将收到您最初发送的相同标头和参数 .
您的授权人无法修改原始请求详细信息(但它包括一个API网关也可以读取的身份验证
context
) .在您引用的示例中:
他们所说的是
REQUEST
授权者期望请求对象中的特定值:如果所有值都匹配,则授权人将
Allow
继续请求 . API网关将接收相同的请求对象(具有所有相同的参数) .如果并非所有值都匹配,则授权者将
Deny
请求返回403 Unauthorized
; API网关不会收到请求 .示例中的每个属性都采用以下方式提供:
AccountId
由AWS自动设置StageVar1
来自已部署的API的舞台设置(API名称>阶段>阶段名称>阶段变量)HeaderAuth
和QueryString1
由HTTP客户端发送(例如curl
)