我已使用VPC链接在AWS API网关上使用单个方法设置API到HTTP服务 .
我还使用Lambda为该API方法设置了TOKEN自定义授权程序 .
自定义授权程序基于AWS Node.js自定义授权程序蓝图,我基本上允许所有方法通过并返回“上下文”部分以及IAM .
{
"principalId": "user|a1b2c3d4",
"policyDocument": {
"Version": "2012-10-17",
"Statement": [
{
"Action": "execute-api:Invoke",
"Effect": "Allow",
"Resource": [
"arn:aws:execute-api:[region]:[account_id]:[restApiId]/[stage]/*/*"
]
}
]
},
"context": {
"key": "new-token",
"number": 1,
"bool": true
}
}
这是Lambda测试时的结果,包括Lambda测试控制台和API网关自定义授权控制台 .
最后,我将Authorization标头映射到Integration Request部分中的'context.authorizer.key' .
现在,当我执行请求时,我希望Authorization标头将填充来自授权者响应的“context”部分的值,但它从未填充过 .
我究竟做错了什么?
1 回答
事实证明我的设置一直都是正确的 .
我正在使用AWS API Gateway测试工具进行测试(使用其中一个屏幕截图中的TEST按钮),但该工具实际上并不允许您端到端地测试它 . 我最终部署了我的舞台,然后使用Postman进行测试 . 然后它开始工作了 . 奇怪的 .