Я настраиваю настраиваемый рабочий процесс авторизации на API-шлюзе и ищу информацию о CORS.
У меня есть авторизатор, который возвращает роль IAM на основе проверки barertoken - который затем вызывает лямбда-выражение myконечная точка назначения, которая возвращает желаемый ответ.
Я выполнил эту работу, добавив свой маркер barer как в метод OPTIONS
, так и в методы GET
/ POST
.
В целом, я добавляю большинство заголовков CORS к методам OPTIONS
+ GET
/ POST
/ etc
, но это кажется излишним.
Я немного не в себе здесь, но интуитивно - если мне нужно добавить те же самые заголовки в моем методе OPTIONS
и целевом методе, я думаю, что AWS просто объединит заголовки из целевых методов в конфигурацию параметров предварительной проверки, поэтому я предполагаю, что добавляю заголовкигде-то излишне, но я не уверен.
Может ли кто-нибудь предоставить обзор / обзор того, как заголовки передаются через API-шлюз при вызове API-интерфейса CORS?
пример информации:
endpoint: api.example.com/logout
methods: OPTIONS, GET
В настоящее время у меня есть: OPTIONS
/ GET
:
request headers:
> barerToken
response headers:
> set-Cookie: integration.response.body.payload.httpCookie
> Access-Control-Allow-Headers: 'Content-Type,X-Amz-Date,Authorization,X-Api-Key,X-Amz-Security-Token,barerToken'
> Access-Control-Allow-Origin: 'https://example.com'
> Access-Control-Allow-Credentials: 'true'
> set-cookie: integration.response.body.payload.cookie
> Access-Control-Allow-Methods: 'OPTIONS,POST'
Моя интуиция говорит, что мне нужно только следующее:OPTIONS
:
request headers:
> barerToken
response headers:
> Access-Control-Allow-Headers: 'Content-Type,X-Amz-Date,Authorization,X-Api-Key,X-Amz-Security-Token,barerToken'
> Access-Control-Allow-Origin: 'https://example.com'
> Access-Control-Allow-Credentials: 'true'
> Access-Control-Allow-Methods: 'OPTIONS,POST'
GET
:
response headers:
> set-Cookie: integration.response.body.payload.httpCookie
> set-cookie: integration.response.body.payload.cookie
Насколько я понимаю, поток выглядит следующим образом:Browser (Preflight) -> End Point (OPTIONS) -> Browser (Request) -> Authorizer Lambda -> End Point (GET) -> Browser (Response)
ИЛИ
Browser (Preflight) -> Authorizer Lambda -> End Point (OPTIONS) -> Browser (Request) -> End Point (GET) -> Browser (Response)
Но я могу легко ошибиться.
Наконец, должен ли я применять авторизатор только к методу OPTIONS
или его следует применять к OPTIONS
и GET
методов? Каковы преимущества / недостатки одного против обоих?