Запрос AWS Serverless API

Всякий раз, когда я начинаю использовать авторизатор AWS_IAM для своей функции, мой запрос API GET, который выполняется из веб-клиента, получает No 'Access-Control-Allow-Origin' header is present on the requested resource., и я получаю код состояния 403. Когда я удаляю авторизатор aws_iam, запрос API, сделанный через тот же веб-клиент, выполняется успешно. Так что я почти уверен, что на самом деле это не ошибка CORS, поскольку я дважды проверил, включен ли в моем API cors. Я не уверен, что я неправильно использую AWS Javascript SDK или не создаю правильные роли для AWS_IAM в моей конфигурации serverless.yml.

Когда я запускаю запрос от почтальона с моими личными ключами доступа из AWS, запрос выполняется. Когда я console.info ключи из AWS.config.credentials и использую их в почтальоне, запрос получает сообщение об ошибке недопустимого токена. Может быть, я не сгенерировал правильную роль для своего пула федеративных удостоверений?

Я использую aws4 во внешнем интерфейсе, чтобы подписать запрос, и я использую axios для выполнения запроса.

Любые идеи?

Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
0
0
190
1

Ответы 1

Axios сделает предполетный запрос. Это тип OPTIONS, и он ожидает ответа 200, прежде чем сделает запрос GET. Также необходимо вернуть заголовок CORS:

Access-Control-Allow-Origin: *

Почтальон не будет делать тот же звонок автоматически, но вы можете использовать его для проверки этого запроса. Убедитесь, что ваш API принимает методы запроса OPTIONS для этого маршрута и возвращает пустой ответ 200 с заголовком CORS, и я думаю, вам будет хорошо.

AFAIK, запрос OPTIONS не требует аутентификации. Просто дайте зеленый свет. Может случиться так, что ваш клиент выполняет вызовы к этой конечной точке как запросы OPTIONS, которые проходят проверку подлинности, добавляя второй уровень путаницы, или вам может потребоваться добавить Access-Control-Allow-Headers, чтобы разрешить заголовок типа Authorisation, если AWS его использует.

Трудно предоставить дополнительную информацию без отладки, но я бы начал с запроса OPTIONS.

Запрос OPTIONS, кажется, выполнен успешно с правильным ответом. Я начинаю полагать, что существует проблема с предоставлением моего AWS Federated Identity доступа к моему шлюзу API.

Dylan Terrell 03.10.2018 19:36

Хм. Какие заголовки вы отправляете для аутентификации через почтальона? Включены ли они в правило CORS для разрешенных заголовков? Или аутентификация не требуется для OPTIONS req?

OK sure 03.10.2018 20:45

Для запроса OPTIONS аутентификация не требуется.

Dylan Terrell 04.10.2018 01:36

Другие вопросы по теме