В настоящее время я работаю над панелью управления, которая включает сторонний oauth2 через раздор. Наконец-то я установил, что он работает локально, установив cook ie после авторизации пользователя, прежде чем он будет перенаправлен:
res.cookie('token', tokenData, { secure: false, httpOnly: false})
res.redirect('https://example.com/')
. На этом этапе в коде браузер находится на странице авторизации стороннее приложение (Discord), и это сервер, который связывается со сторонним приложением, а затем устанавливает повар ie и перенаправляет обратно на клиент.
Локально, я могу отправьте повара ie и он будет прочитан клиентом, но как только он перейдет в разработку, как только произойдет авторизация и я перенаправлюсь на свой веб-сайт, повар ie потеряется. Я попытался установить их в программе повара ie, но, похоже, ничего не помогло.
domain: 'https://.example.com/'
У меня также есть промежуточное ПО cors с этими параметрами, но, похоже, оно не работает что угодно.
{credentials: true, origin: origin}
Я также использую ax ios с
{withCredentials: true}
Мой интерфейс - это приложение React, размещенное на Netlify https://example.com
Мой сервер расположен на Heroku , http://api.example.com
Все запросы '/ api / *' на Netlify перенаправляются через прокси на http://api.example.com
Я подозревал, что это могло быть потому, что сервер отправлял данные с http на https, поэтому я в итоге создал Dyno на Heroku и пытался сделать http для http, но повар ie все еще терялся.
Локально, он работает с моим клиентом, размещенным на localhost:3000
, и моим сервером на localhost:8080
Я попытался зарегистрировать повара ie после вызова res.cookie
, и значения повара ie действительно есть, но по какой-то причине я предполагаю, что CORS не позволяет серверу установить повара ie когда он перенаправлен к клиенту. Мне нужен повар ie, чтобы аутентифицировать и различать пользователей, и я хотел избежать использования базы данных только для хранения куки.
Я также пытался использовать express -сессию, но происходит то же самое , Работает локально, но теряется в производстве.
Это связано с Heroku, или я что-то упустил? Заранее спасибо!