Почему мои конечные точки не передают заголовки / файлы cookie и отвечают, как и ожидалось, в Clojure с использованием ring? - PullRequest
3 голосов
/ 11 ноября 2019

Я хочу перенаправить из конечной точки API в другую конечную точку, пропуская заголовки и файлы cookie.

Ниже приведено перенаправление с конечной точки, с которой я хочу перенаправить на другую конечную точку с заголовком и файлами cookie.

(GET "/the-endpoint"
     request
     (-> (response/redirect "/another-endpoint")
         (response/header "Authorization" (str "Bearer " "some-token"))
         (response/set-cookie "access_token" "some-token")))

Обратите внимание, что я поместил токен и в заголовок, и в файлы cookie для целей тестирования, поскольку ни заголовок, ни файлы cookie не передаются в /another-endpoint

У меня есть простой GETдля другой конечной точки, которая пока возвращает ответ с глупым телом.

Я наблюдаю за значениями заголовков и файлов cookie на вкладке Сеть в Chrome DevTools. Я испытываю странное поведение в этом обработчике, при котором тело ответа загружается Chrome, а не отображается в браузере.

(GET "/another-endpoint"
     request
     (response/response "something random to be used as the body for now"))

Я вижу запрос в сети, который показывает состояние 200, но заголовок запросаи куки, через которые я прошел, не были установлены. Я думал, что это проблема CORS, поэтому я сделал перенаправление на том же API и испытал то же поведение.

Я использую:

[ring/ring-core "1.6.3"]

По сути, я хочу знать:

  1. Почему не переданы заголовок Authorization и access_token cookieна /another-endpoint?
  2. Почему ресурс /another-endpoint загружается Chrome, а не отображается в браузере?

Что я пытаюсь сделать:

  1. Пользователь заходит на веб-сайт и нажимает кнопку, чтобы что-то сделать.
  2. Эта кнопка перемещается к конечной точке API, которая будет генерировать jwt.
  3. API необходимо перенаправить навнешний API-интерфейс с jwt в заголовке для автоматической аутентификации.
  4. После аутентификации пользователь должен плавно перейти на панель мониторинга внешнего веб-сайта, чтобы он мог продолжить (без ручного входа в систему).

Сейчас я тестирую все на одном API.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...