Файлы cookie при использовании отдельного Dyno для внешнего интерфейса и бэкэнда Django - PullRequest
1 голос
/ 12 мая 2019

Я создаю простое веб-приложение, используя React.js для внешнего интерфейса и Django для серверной стороны.

Таким образом frontend.herokuapp.com и backend.herokuapp.com.

Когда я пытаюсь сделатьвызывает мой API через приложение реагировать, cookie, полученный от API, не отправляется с запросами.

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

В попытке найти решение, которое, как я думал, будет работать, я попытался установить

SESSION_COOKIE_DOMAIN = "herokuapp.com"

Что, хотя и не идеально (так как herokuapp.com является обширным доменом) в Production, может показаться довольно безопасным, как тогда было бы на api.myapp.com и www.myapp.com.

Однако с этим значением, заданным в settings.py, я получаю AuthStateMissing при попадании в мою /oauth/complete/linkedin-oauth2/ конечную точку.

Поиск в Google по AuthStateMissing SESSION_COOKIE_DOMAIN дает один солитЛюбой результат, который подразумевает, что проблема была зарегистрирована как ошибка в социальной аутентификации Django и с тех пор была закрыта без дальнейших комментариев.

Любой свет, который кто-либо может пролить, будет очень признателен.

1 Ответ

3 голосов
/ 12 мая 2019

Я столкнулся с точно такой же проблемой при использовании herokuapp.com. Я даже разместил вопрос на ТАК.

Согласно документации Heroku:

Другими словами, в браузерах, поддерживающих эту функциональность, приложениям в домене herokuapp.com запрещено устанавливать файлы cookie для * .herokuapp.com

Heroku блокирует файлы cookie с веб-сайтов frontend.herokuapp.com и backend.herokuapp.com. Вам необходимо добавить собственный домен для frontend.herokuapp.com и backend.herokuapp.com

Весь ответ https://stackoverflow.com/a/54513216/1501643

...