Вот сценарий. Я использую ActionCable для сайта (назовем его www.example.com
). Он отлично работает в dev, но как только я нажимаю его на Heroku, я получаю 302 ошибки для подключения к WebSocket.ActionCable, пользовательский домен Heroku и Cookies
Проблема, похоже, связана с тем, что у меня есть Heroku, используя собственный домен. Из-за этого, если я укажу WebSocket на wss://example.com
, он дает мне 302, я предполагаю, потому что он перенаправляется на URL-адрес example.herokuapp.com
?
Так что в свете этой проблемы я был вынужден вместо этого указать соединение с WebSocket на wss://example.herokuapp.com
. Проблема, с которой я сейчас сталкиваюсь, заключается в том, что, поскольку это, по сути, новый домен, на который я указываю, файлы cookie с example.com не используются с example.herokuapp.com
. Это означает, что example.herokuapp.com
передает пустой файл cookie, который фактически устанавливается на example.com, который я использую для аутентификации.
Я проверил это, зарегистрировав cookie без знака (просто временно без знака для тестирования, не волнуйся о безопасности), а также установив этот файл cookie на сервере example.herokuapp.com
. После этого он работал красиво.
Очевидно, что я не могу иметь кого-то идти на обоих сайтах просто установить проклятую печенье ...
То, что я хотел бы, чтобы найти способ, чтобы исправить первоначальную проблему, и быть в состоянии указать WebSocket на мой пользовательский домен wss://example.com
и не нужно беспокоиться о проблемах с подписями файлов cookie. Это возможно?
Если нет, то какой был бы лучший способ установить cookie на домен example.herokuapp.com
?
P.S. да, я посмотрел другие вопросы о ActionCable & Heroku, но ни один из них не имеет отношения к пользовательским доменам. Это один говорит о печенье решить эту проблему, но я не чувствую, как он будет работать с этим сценарием, так как они не являются теми же подобласти: Deploying Ruby on Rails app to Heroku while using Action Cable (Puma port listening)
Спасибо, что нашли время, чтобы помочь мне, ребята :)
[EDIT] Это похоже на этот вопрос здесь, но я получаю 302 не 503. Heroku error 503, webSockets on multiple domains
Что было решение этой проблемы? Я сталкиваюсь с аналогичной проблемой – gwalshington