我设置了2个lambda函数:
以下是以下设置:
功能(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的案件。我还返回“ *”作为标头允许的来源(针对所有功能响应),用于测试。
任何帮助将不胜感激:)。