У меня настроены 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
Я также добавил следующее для обработки запросов CORS на уровне шлюза API без сервера для обеих функций (https://serverless.com/blog/cors-api-gateway-survival-guide/)
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. Я также возвращаю "*", так как заголовки допускают происхождение (из ответа функции для всех) для целей тестирования.
Любая помощь будет высоко оценена:).