2012-10-29 21 views
0

我正試圖在Django和PostgreSQL中實現一個多租戶應用程序,併爲每個租戶單獨(但相同)的架構。身份驗證將無法在除公衆之外的架構上工作

我選擇與租戶架構:

cursor.execute('SET search_path TO ' + schemas) 

而且我有一個選擇使用基於主機名,其模式的中間件,所以它的工作是這樣的:

foo.mysite.com --> use schema 'client_moo' 
bar.mysite.com --> use schema 'client_bar' 

這原則上,這是簡單的情況下(簡單的數據庫查找)

但是,當我嘗試登錄時,事情開始崩潰。每個租戶應該有它自己的單獨登錄pa ge,因此foo.mysite.com將與bar.mysite.com不同,它與mysite.com不同。

但是,試圖從子域名登錄到管理應用程序會導致重定向回登錄頁面。

這裏是發生了什麼:

  • mysite.com原木精細(架構:public)的
  • foo.mysite.comn,而不是登錄會重定向(HTTP 302)回本身(foo.mysite.com)(模式:client_foo

強制模式永遠是client_foo將導致我mysite.com工作(即登錄在client_foo模式),但foo.mysite.com仍然無法工作。


刪除模式的選擇完全(所以它總是在public模式)可以讓兩個網址登錄罰款。

+0

「*試圖從子域名登錄到管理應用程序導致重定向回登錄頁面*」:這聽起來不像PostgreSQL問題。 PostgreSQL不會「重定向」 –

回答

相關問題