繁体   English   中英

AWS API Gateway定制授权者。 如何在Lambda中访问principalId

[英]AWS API Gateway custom authorizer. How to access principalId in lambda

因此,我试图在API Gateway中设置自定义授权者。

我可以得到它,以将具有有效令牌的请求转发到API方法中指定的lambda函数。 我无法弄清楚如何访问授权者传递的principalId。

执行请求时,我会在Cloud监视日志中获得以下内容:

Authorizer result body before parsing:
{
  "principalId": "16",
  "policyDocument": {
    "Version": "2012-10-17",
    "Statement": [
      {
        "Condition": {},
        "Action": "execute-api:Invoke",
        "Resource": [
          "arn:aws:execute-api:eu-central-1:****:***/null/*/*"
        ],
        "Effect": "Allow"
      },
      {
        "Condition": {},
        "Action": "execute-api:Invoke",
        "Resource": [],
        "Effect": "Deny"
      }
    ]
  }
}

那么,如何在lambda函数中访问principalId? 该对象是否甚至传递给了lambda? 如果不是,那么至少如何传递principalId?

可以(默认情况下)将principalId转发给Lambda实现。 根据您的映射,principalId应该出现在上下文变量中。

您可以使用$ context.authorizer.principalId变量访问映射模板中的principalId值。 如果要将值传递给后端,这将很有用。 有关更多信息,请参见访问$ context变量。

使用API​​网关自定义授权者

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM