1

我正在使用 IIS 在 Windows Server 2019 上运行 Dash/Flask 应用程序。我用 CGI 安装了 IIS,在应用程序的虚拟环境中安装了 wfastcgi,以管理员身份运行 wfastcgi-enable,并使用虚拟环境的 python 可执行文件和 wfastcgi.py 文件等在 web.config 中将 FastCGI 应用程序指定为路由处理程序。

一切顺利,应用程序已启动并运行。如果用户注销,应用程序将重定向到“/”以登录。当我在 Flask 的内置服务器上运行应用程序时,这一切都可以正常工作,但只能在这个 IIS/ fastcgi 设置。我使用flask-login 登录和验证用户,密切关注此处给出的示例:https ://github.com/RafaelMiquelino/dash-flask-login 。

我还尝试配置烧瓶登录的记住我功能以在浏览器关闭后保持登录,但这并没有改变上述问题。

有没有其他人经历过这个?我愿意接受任何关于我为什么会在 IIS 和 FastCGI 中遇到这种奇怪的(会话?)行为的想法。谢谢!

编辑:

而且,我又做了一些测试,发现不仅是随机注销,还有某种“随机登录”: 1.用户在登录页面登录并重定向到位于/成功下的“真实”内容:消息: 用户无法通过身份验证。2.重新加载网页“/success”,无需任何进一步操作:用户通过身份验证,可以看到内容。在重复重新加载相同的用户后,随机验证或不验证。

4

1 回答 1

0

尝试增加 iis 应用程序池回收和理想的超时值。

在此处输入图像描述

增加快速 cgi 理想超时:

在此处输入图像描述

确保将 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/

于 2020-05-11T03:11:14.133 回答