我有一個處理多個子域的單一flask應用程式 假設我們有
www.domain.com用于客戶 。
workers.domain.com代表工人 。
我為每個子域使用不同的藍圖,像這樣
customers = Blueprint('customers', __name__, subdomain="www" /span>)
workers = Blueprint('workers', __name__, subdomain="workers")
對于AUTH我們使用flask-login
我已經成功地為不同的子域設定了不同的REMEMBER_ME_COOKIE,方法是設定
REMEMBER_COOKIE_DOMAIN = None
我想做的是為每個電子郵件同時登錄到每個子域的多個賬戶(會話)
例如,如果我是一個工人,我想在workers.domain.com上登錄我的工人賬戶,同時在www.domain.com上登錄我的客戶賬戶
問題是flask對所有的子域使用相同的會話cookie,這意味著如果我登錄到工人子域,并在同一瀏覽器中打開客戶子域,Flask會給我相同的會話cookie,我將以工人賬戶登錄到客戶子域,這將導致很多其他問題
我所嘗試的
SESSION_COOKIE_DOMAIN設為None。 并且仍然在所有子域中共享同一個會話cookie
一些可能的解決方案,我不知道如何實作
- 為不同的子域(或藍圖)設定不同的
- 重新實作會話cookie,使用戶ID通過密匙與子域進行編碼 。
SECRET_KEY。
歡迎提出任何想法
。uj5u.com熱心網友回復:
SESSION_COOKIE_DOMAIN
會話cookie將有效的域名匹配規則。 如果沒有設定(無),cookie將對SERVER_NAME的所有子域有效。 如果False,cookie的域將不會被設定。Default: None
解決辦法是設定
SESSION_COOKIE_DOMAIN = False。
這樣,session-cookie的域就沒有被設定,因此默認情況下,瀏覽器會將其設定為當前的精確域(和子域)
這意味著在同一個flask應用物件中的不同子域有不同的會話
。轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/329842.html
標籤:

