Случайный выход из системы с flask -входом в IIS с FastCGI - PullRequest
0 голосов
/ 09 мая 2020

Я запускаю приложение Dash / Flask на Windows Server 2019 с IIS. Я установил IIS с CGI, установил wfastcgi в виртуальной среде приложения, запустил wfastcgi-enable от имени администратора и указал приложение FastCGI в качестве обработчика маршрута в web.config, используя исполняемый файл виртуальной среды python и файл wfastcgi.py и т. Д. c.

Все прошло гладко, приложение запущено и работает. Приложение перенаправляет на '/' для входа в систему, если пользователь вышел из системы. Все это отлично работает, когда я запускаю приложение на встроенном сервере Flask, но работает только периодически (т.е. иногда пользователь больше не входит в систему после перенаправления или обновления страницы, пользователь случайно выходит из системы) в этой настройке IIS / fastcgi. Я использую flask -login для входа в систему и аутентификации пользователей, внимательно следуя приведенному здесь примеру: https://github.com/RafaelMiquelino/dash-flask-login.

Я также пытался настроить функцию flask -login, запомни меня, чтобы сохранить логин после закрытия браузера, но это не повлияло на упомянутые проблемы.

Кто-нибудь еще такое испытывал? Я открыт для любых идей о том, почему я испытываю такое странное (сеансовое?) Поведение с IIS и FastCGI. Спасибо!

EDIT:

Более того, я провел еще несколько тестов и обнаружил, что это не только случайный выход из системы, но и своего рода «случайный вход»: 1 . Пользователь входит в систему на странице входа и перенаправляется к «реальному» контенту, расположенному в / success: Сообщение: Пользователь не может быть аутентифицирован. 2. Перезагрузка веб-страницы «/ успех» без каких-либо дополнительных действий: пользователь аутентифицирован и может видеть содержимое. После повторной перезагрузки один и тот же пользователь аутентифицируется случайным образом или нет.

1 Ответ

0 голосов
/ 11 мая 2020

Попытайтесь увеличить повторное использование пула приложений iis и идеальное значение времени ожидания.

enter image description here

увеличить идеальное время ожидания быстрой cgi:

enter image description here

Make убедитесь, что вы установили app.secret_key на какой-то секретный ключ. вы можете получить ключ, используя следующий код:

import os
os.urandom(24)

Используйте следующую команду, чтобы быстро сгенерировать значение для Flask .secret_key (или SECRET_KEY):

$ python -c 'import os; print(os.urandom(16))'
b'_5#y2L"F4Q8z\n\xec]/'

См. эту ссылку для более подробной информации:

flask -login делает сеанс недействительным случайным образом после аутентификации

https://flask-login.readthedocs.io/en/latest/

...