当前位置: 首页 > 知识库问答 >
问题:

如何使用无服务器部署没有标识源的API网关自定义授权器?

松洛华
2023-03-14

我正在尝试使用无服务器框架在API网关中创建一个自定义的lambda授权器。

functions:
  create:
    handler: posts.create
    events:
      - http:
          path: posts/create
          method: post
          authorizer:
            arn: xxx:xxx:Lambda-Name
            resultTtlInSeconds: 0
            type: request
          integration: lambda
          cors: true
          request:
            template:
              application/json: '{"method": "$context.httpMethod","body" : $input.json("$"),"headers": {#foreach($param in $input.params().header.keySet())"$param": "$util.escapeJavaScript($input.params().header.get($param))" #if($foreach.hasNext),#end#end},"queryParams": {#foreach($param in $input.params().querystring.keySet())"$param": "$util.escapeJavaScript($input.params().querystring.get($param))" #if($foreach.hasNext),#end#end},"pathParameters": {#foreach($param in $input.params().path.keySet())"$param": "$util.escapeJavaScript($input.params().path.get($param))" #if($foreach.hasNext),#end#end}}'
{"method": "$context.httpMethod","body" : $input.json("$"),"headers": {#foreach($param in $input.params().header.keySet())"$param": "$util.escapeJavaScript($input.params().header.get($param))" #if($foreach.hasNext),#end#end},"queryParams": {#foreach($param in $input.params().querystring.keySet())"$param": "$util.escapeJavaScript($input.params().querystring.get($param))" #if($foreach.hasNext),#end#end},"pathParameters": {#foreach($param in $input.params().path.keySet())"$param": "$util.escapeJavaScript($input.params().path.get($param))" #if($foreach.hasNext),#end#end}}
    null
    null

共有1个答案

方博
2023-03-14

这对我起作用了。

  identitySource: '',
  resultTtlInSeconds: 0 // You have to set this to 0. 

希望这能让人们省去我刚刚经历过的痛苦!:p

 类似资料:
  • 我希望为AWS Lambda/zappa使用一些“无服务器api服务器”,它使用自定义api网关授权器进行用户身份验证。在无服务器AWS lambda服务中,使用自定义授权器而不是直接在代码控制器中检查发布的JWT令牌是否有相当大的安全性或成本效益?对我来说,用代码检查可能更方便。 更新我去了预请求钩子,但是有头级授权器,它更容易用于CORS,但它不支持的zappa我相信。也可以通过swagger

  • 我试图在AWS API网关上使用自定义授权器(它验证jwt)来保护lambda函数。我还想将任何传递到我的lambda函数中,因此我想保持我的集成请求是lambda代理。 自定义授权程序已设置、测试并开始工作 问题: 谢谢你!

  • 我是API网关的新手。我尝试使用“自定义授权程序”。我遵循了下面的文档,并使用了网站提供的示例代码。https://docs.aws.amazon.com/apigateway/latest/developerguide/apigateway-use-lambda-authorizer.html “令牌类型的lambda授权者”是工作的。 但是... 我对“请求类型”感到困惑,不知道如何将quer

  • 我需要了解在我的项目范围内使用autheorizaion服务器的便利性。 我们正在实现我们的服务并将其部署到客户环境中。 客户基础结构已经提供了一种身份验证机制,以便对用户进行身份验证。 此机制拦截所有通信并将用户重定向到“登录”表单。 之后,用户被重定向到我们的服务,我们必须处理和消化它,并使用JWT令牌进行响应。 这是我感到迷茫的地方: 我在想: 使用Spring oauth2 向授权服务器请

  • Mono Apr 10 09:42:35 UTC 2017:转换后的endpoint请求主体:{“Type”:“Token”,“AuthorizationToken”:“ABC123”,“MethodArn”:“arn:aws:execute-api:ap-southeast-1:007183653813:OHLQXU9P57/null/Get/”}Mono Apr 10 09:42:36 UTC