会话在本地主机上的两个 Flask 应用程序之间共享

Posted

技术标签:

【中文标题】会话在本地主机上的两个 Flask 应用程序之间共享【英文标题】:Session is shared between two Flask apps on localhost 【发布时间】:2017-07-07 02:53:39 【问题描述】:

所以,我在 localhost 上运行了两个 Flask 应用程序,一个在端口 5001 上,另一个在端口 5003 上,显然两者都使用相同的会话。如果我登录一个应用程序,它会在另一个应用程序上注销。例如,最近,如果我在一个应用程序上使用我的电子邮件登录,它也会在另一个应用程序上登录我的帐户,因为我有用户在两个应用程序上使用该电子邮件,并且我使用该电子邮件作为用户标识符,但是当我为用户使用另一个 id 时,这种情况就停止了。

我正在使用 Flask-Login 和 Google Chrome(Edge 中也会发生同样的事情)。

我不确定这是否也可能在生产中发生,我们可能会为两个应用程序使用相同的主机,所以这将是一个问题。如果这只是与 localhost 相关的东西,那没关系,但我认为不是这样。

知道这里会发生什么吗?

提前致谢。

【问题讨论】:

【参考方案1】:

我遇到了类似的问题,我认为原因是两个实例都会在浏览器中使用相同的“会话 cookie”。

为我修复它的解决方案是重命名 SESSION_COOKIE_NAME,默认情况下为 session

app.config.update(SESSION_COOKIE_NAME=<new_session_name>)

我通过以下方式找到了解决方案:https://***.com/a/45497948/380038

【讨论】:

100% 解决了我在同一台服务器上使用不同端口 80 和 8080 运行 2 个烧瓶(flask-login)应用程序的问题

以上是关于会话在本地主机上的两个 Flask 应用程序之间共享的主要内容,如果未能解决你的问题,请参考以下文章

使用 Twilio + Flask + Ngrok + Python (2.7) 在本地主机上出现 404 错误

在本地主机上的 glassfish 4.0 上实现 ssl

本地主机上的 recv() 数据丢失

本地主机上 Smack 和 Openfire 之间的路由错误

本地主机上丢失的执行程序驱动程序:执行程序心跳超时

在本地主机上运行两个 grails 应用程序时如何解决跨域错误