Yes would only be for subfolder setups, also not sure what to do about leftover cookie
Were any of the recent subfolder changes helpful here on this front?
I don’t recall changing anything in this department recently.
Прошло 7 лет, а у куки _t всё ещё не установлен параметр Path
![]()
запущена версия v3.4.2
Я хосту два сервера, на каждом из которых работает около 15 экземпляров Discourse в подкаталогах. Отсутствие параметра Path у куки _t создаёт значительные неудобства.
Параметр DISCOURSE_TOKEN_COOKIE также нигде не задокументирован.
Поиск в Google выдаёт всего три результата: эту тему, ссылку на код в GitHub, где определена эта переменная, и битую ссылку (404) на что-то под названием isharkfly.
Мне потребовалось более 6 месяцев, чтобы найти эту тему.
К сожалению, вы правы — у куки _t до сих пор нет связанного пути. Мы хотели бы это исправить, но установка в «подпапках» встречается довольно редко, а несколько установок в подпапках на одном домене — ещё реже. Поэтому это пока не было в приоритете.
Я посмотрел на одну коллекцию сайтов в подпапках, которые мы хостим, и оказалось, что нашим решением было переименование куки для каждого сайта на домене. Таким образом, если вы используете наши стандартные YAML-файлы установки, вам нужно добавить что-то вроде этого в каждый из них:
env:
DISCOURSE_TOKEN_COOKIE: _t_mysite
(где mysite отличается для каждого форума)
Да. Я уже добавил это. Но у пользователей по-прежнему возникают проблемы, когда им приходится повторно проходить аутентификацию чаще, чем это необходимо при переключении между экземплярами.
Однако главная проблема заключалась в том, чтобы узнать о существовании этой опции. Я обнаружил её только после изучения исходного кода, а нашёл эту тему лишь потому, что искал точное название настройки уже после того, как узнал о её существовании.
Понял. Спасибо, что поделились этим здесь!
Форумы являются публичными? Можете ли вы поделиться несколькими ссылками?
Это форумы университетских курсов. Поэтому они закрытые.
Формат URL: discourseX.university.url/\u003cгод\u003e/\u003cназвание-курса\u003e
И ваш DISCOURSE_TOKEN_COOKIE включает в себя и год, и название курса?
Да, это _discourse-<год>_<название-курса>_t
Я ещё раз прошу правильно ограничить область действия cookie _t путём указания пути инстанса.
Я столкнулся с ещё одной проблемой обходного пути DISCOURSE_TOKEN_COOKIE.
В настоящее время я управляю двумя доменами, на каждом из которых запущено 40, да, сорок, инстансов Discourse. (Я понимаю, что это, возможно, не ваш типичный случай использования).
Даже при переименовании через DISCOURSE_TOKEN_COOKIE область действия cookie ограничена только доменом, а не путём.
Это означает, что все запросы к этому домену получают все cookie для этого домена, независимо от пути.
При 40 переименованных cookie каждый запрос отправляется с одним полезным cookie и 39 бесполезными.
Хорошо, отправлялись бы 39 бесполезных cookie, но после примерно 30 запрос становится слишком длинным, и я получаю ответ 400 со следующим сообщением:
Размер поля заголовка запроса превышает лимит сервера.