В конкретном коде Node.js, реализующем пользовательскую стратегию аутентификации для Passport.js (в которой используется Express 4.6.13), в какой-то момент выполняется следующая строка:
return res.redirect(global.config.applicationEndpoint + '?user=' + queryUserString);
Он работает нормально, пока URL не передается на res.redirect()
достаточно коротким.Если передается особенно длинный queryUserString
(~ 8000 символов или более), он по-прежнему выдает ответ о перенаправлении с длинным и одинаково верным запросом uri, но этот uri явно усекается (заканчивается превентивно) ближе к концу.Несколько вещей, на которые следует обратить внимание:
Инструкция по ведению журнала, расположенная непосредственно перед этой строкой, позволяет сделать вывод, что непосредственно перед тем, как queryUserString
передается в res.redirect()
, она еще не усечена.
В ответе на перенаправление это действие генерируется в случае длинного queryUserString
, хотя request uri IS обрезано, uris, переданные в теле ответа, НЕ являются (они одинаковыURIs).Тем не менее, это все еще мешает моему приложению работать должным образом (мне нужно, чтобы этот длинный uri был передан в заголовке запроса)
Понятно, что здесь вводится какое-то ограничение.Но я не могу найти ничего, что я мог бы подправить, чтобы в запросах было больше времени для уриса.
Любая помощь приветствуется, у меня нет идей.