无服务器自定义身份验证调用被拒绝,可与Postman一起使用

时间:2019-05-26 16:02:56

标签: fetch aws-api-gateway serverless-framework serverless aws-serverless

我设置了2个lambda函数:

  1. 用户身份验证(也可以用作自定义身份验证)
  2. 列出网站

以下是以下设置:

功能(1):


functions:
  userAuth:
    handler: handler.auth
    role: ${env:ARN_LAMBDA}
    events:
      - http:
          method: post
          path: auth
          cors:
            origin: '*'
            headers: # <-- Specify allowed headers
              - Content-Type
              - X-Amz-Date
              - Authorization
              - X-Api-Key
              - X-Amz-Security-Token
              - X-Amz-User-Agent

功能(2):

events:
      - http:
          path: /
          method: get
          cors:
            origin: '*' # <-- Specify allowed origin
            headers: # <-- Specify allowed headers
              - Content-Type
              - X-Amz-Date
              - Authorization
              - X-Api-Key
              - X-Amz-Security-Token
              - X-Amz-User-Agent
              - Authorization
          authorizer:
            arn: arn:aws:lambda:ap-southeast-1:<arnno>:function:users-${opt:stage}-userAuth
            resultTtlInSeconds: 0
            identitySource: method.request.header.Authorization
            type: request

我还添加了以下内容,用于在两种功能(https://serverless.com/blog/cors-api-gateway-survival-guide/)的无服务器API网关级别处理CORS请求

resources:
  Resources:
    GatewayResponseDefault4XX:
      Type: 'AWS::ApiGateway::GatewayResponse'
      Properties:
        ResponseParameters:
          gatewayresponse.header.Access-Control-Allow-Origin: "'*'"
          gatewayresponse.header.Access-Control-Allow-Headers: "'*'"
        ResponseType: DEFAULT_4XX
        RestApiId:
          Ref: 'ApiGatewayRestApi'

当我通过邮递员使用“授权”标头运行请求时,它运行正常。但是,当我使用与fetch请求相同的内容时,会收到失败的403。

任何想法,我在这里想念的是什么?

我已经处理了CORS的案件。我还返回“ *”作为标头允许的来源(针对所有功能响应),用于测试。

任何帮助将不胜感激:)。

0 个答案:

没有答案