【发布时间】:2018-01-10 13:46:12
【问题描述】:
我有几个使用 WSGI 在我的 apache 服务器上运行的 python 3.6 Flask 应用程序。
有 2 个不同的应用程序在同一个 apache 服务器上运行:www.example.com/lodgewww.example.com/dashboard
两个应用都有一个独特的app.secret_key
/dashboard 应用程序是一个烧瓶应用程序,具有自己的一组路由:/dashboard/login/dashboard/orders/dashboard/staff
登录路由调用session.clear() 并让用户输入他们的登录信息。然后,登录的令牌会存储在会话变量中。/dashboard/orders 和 dashboard/staff 路由都有一个装饰器,用于检查会话中登录令牌是否存在,如果不存在则重定向到登录路由。
/lodge 应用程序是另一个简单的 Flask 应用程序,具有自己的路由:/lodge/welcome/lodge/personal/lodge/review/lodge/confirmation
欢迎路线还调用session.clear(),然后显示一个网络表单。当用户提交 webform 时,personal 路由被调用,它将这些 webform 输入值存储到会话中。
我遇到的问题是,如果我导航到www.example.com/dashboard/login 并登录,然后我可以在员工和订单路线之间轻弹完全没有问题,但是当我打开一个新标签并转到www.example.com/lodge/welcome 时(然后调用session.clear)然后重新打开仪表板选项卡并尝试转到员工或订单路线,因为会话已被清除,我被重定向回登录路线。
httpd.conf:
<VirtualHost *:80>
WSGIScriptAlias /newapp "c:/lodge/lodge.wsgi"
<Directory "c:/lodge">
Require all granted
</Directory>
WSGIScriptAlias /dashboard "c:/dashboard/dashboard.wsgi"
<Directory "c:/dashboard">
Require all granted
</Directory>
</VirtualHost>
旁注,如果我访问http://example.com/dashboard 上的仪表板应用程序和http://www.example.com/lodge 上的旅馆应用程序,则不会发生这种情况
【问题讨论】:
标签: python apache session flask wsgi