单个烧瓶应用程序中多个子域的单独登录会话

Separate login sessions for multiple subdomains in a single flask app

我有一个处理多个子域的烧瓶应用程序 假设我们有


我像这样为每个子域使用不同的蓝图

customers = Blueprint('customers', __name__, subdomain="www")
workers = Blueprint('workers', __name__, subdomain="workers")

对于 AUTH,我们使用 flask-login

我已经通过设置

成功地为不同的子域设置了不同的 REMEMBER_ME_COOKIE
REMEMBER_COOKIE_DOMAIN = None  

我正在尝试做的是让每个电子邮件同时登录到每个子域的多个帐户(会话)

例如,如果我是一名工人,我想在 workers.domain.com 登录我的工人帐户,同时在 www.domain.com

登录我的客户帐户

问题是 Flask 对所有子域使用相同的会话 cookie,这意味着如果我登录到 workers 子域并在同一浏览器中打开客户子域,Flask 将给我相同的会话 cookie,我将使用工人帐户登录客户子域会导致很多其他问题


我试过的


我不知道如何实现的一些可能的解决方案

任何想法将不胜感激

Config Documentation

中所写

SESSION_COOKIE_DOMAIN
The domain match rule that the session cookie will be valid for.
If not set (None), the cookie will be valid for all subdomains of SERVER_NAME.
If False, the cookie’s domain will not be set.
Default: None

解决方案是设置

SESSION_COOKIE_DOMAIN = False

因此未设置会话 cookie 的域,因此默认情况下浏览器会将其设置为当前的确切域(和子域)

这意味着 同一个 flask 应用程序对象中不同子域的不同会话