ПРИЧИНА
iisnode прокси запросы от IIS для вашего приложения узла запуска экспресс. Соединение ssl прекращается в IIS, и ваше приложение-узел получает HTTP-запрос. Когда приложение требует файлов cookie через безопасное соединение, cookieSession и express-session не будут устанавливать cookie.
РЕЗОЛЮЦИЯ
Вы должны сказать Экспресс, что он может доверять прокси, когда заголовок x-forwarded-proto
установлен на «https».
Вы можете сделать это, либо добавив прокси: правда конфигурации
app.use(express.session({
proxy : true,
secret: 'your-secret-key',
cookie: {
secure: true
}
}));
Или вы можете сказать Экспресс доверять прокси глобально:
app.set('trust proxy', 1)
Также установлено enableXFF
к истинно в вашей сети. конфигурации. Это делает iisnode добавлять заголовки запроса x-forwarded-proto
(и x-forwarded-for
) в экспресс-приложение.
<configuration>
<system.webServer>
<!-- ... -->
<iisnode enableXFF="true" />
</system.webServer>
</configuration>
НЕОБХОДИМОЕ УСЛОВИЕ
iisnode должно быть по крайней мере, версия 0.2.11 иметь enableXFF
конфигурации добавить x-forwarded-proto
запрос HTTP заголовков. Вы можете проверить, какая версия iisnode у вас есть, посмотрев на свойства вашего файла iisnode.dll
, вероятно, установленного в C:\Program Files\iisnode
. Если это < 0.2.11, просто скачайте последнюю версию с любого из ссылок для скачивания here. После установки он скажет вам, что вам нужно перезагрузить сервер. Могу вам сказать, что достаточно команды iisreset
(в увеличенном окне cmd).