如何将数据从自定义授权程序发送到api端点

时间:2018-02-06 11:25:00

标签: amazon-web-services aws-lambda

说,我可以访问自定义授权器中的某个值,如何将其传递给api端点 我到目前为止所读到的是,我们可以使用策略生成器中的上下文来做到这一点。像这样的东西 -

 authResponse.context = {
      "key": "this is the data sent from custom authorizer",
      "numKey": 1,
      "mysql":"sdf"
    };

但此代码位于策略生成器中,而不是自定义授权程序中。 那么,如何访问我在自定义授权器中获得的值并将其传递给策略生成器呢? 我的主要目标是将该值发送到api端点。

1 个答案:

答案 0 :(得分:1)

您需要将信息添加到authResponse.context,这是正确的。完成此操作后,您可以通过API网关方法的“集成请求”界面将其配置为URL查询字符串参数或请求标头等。

enter image description here

现在,您的授权人生成的值可用于API网关的上游端点。

以下文件建议(但未完全阐明)此解决方案:

Amazon API Gateway API Request and Response Data Mapping Reference

  

将方法请求数据映射到集成请求参数

     

集成请求参数,以路径变量的形式,查询   可以从任何已定义的方法请求映射字符串或标头   参数和有效载荷。

"API Gateway Mapping Template Reference"

  

$ context.authorizer.property

     

上下文的指定键值对的字符串化值   从API网关自定义授权程序Lambda函数返回的映射。   例如,如果授权者返回以下上下文映射:

     

“context”:{“key”:“value”,“numKey”:1,“boolKey”:true}   调用$ context.authorizer.key返回“value”字符串,调用   $ context.authorizer.numKey返回“1”字符串,并调用   $ context.authorizer.boolKey返回“true”字符串。