2016-08-17 65 views
0

我目前正在同時開發2個不同的站點:其中一個是大量定製的Django管理界面,另一個是「獨立」網站,將分享它是以前的數據庫。Django多個站點:防止跨站點認證

儘管它們是相關的,但我希望我的用戶不要在兩個站點之間進行鬆散的識別:它們都可以獨立於另一個站點。

但是,當某人登錄到「管理員」網站時會出現問題:當他們訪問其他網站時,系統會自動登錄。除非我允許,否則不會以其他方式發生,因爲管理網站需要用戶模型中的特殊權限。

我已經創建了UserProfile,可以區分其中一個網站或這兩個網站的用戶。

因此,瞭解所有這些,我如何確保管理網站的客戶在其他網站(當然,沒有從第一個網站登出)進行身份驗證?

謝謝!

編輯:爲了更好地格式化,這裏是我得到了什麼,總結出:

  • 一個管理應用程序/網站都在同一服務器上運行
  • 一個相關的應用程序/網站, 如果某些在管理記錄共享設置和urls.py

,我想要求他們創造一個新的會話登錄[相關網站]:此,無需註銷的管理網站。

我應該怎樣做這個配置來實現這個目標?

回答

1

針對每個應用程序放置不同的SESSION_COOKIE_DOMAINSESSION_COOKIE_NAME。希望這能解決你的問題。

SESSION_COOKIE_DOMAIN = 'site1.com' #site2.com for other 
SESSION_COOKIE_NAME = 'sid1' #sid2 for other 
+0

因此,據我所知,在另一個manage.pys上運行這兩個站點與第二個站點的另一個settings.py是強制性的? –

+0

Nop.you可以通過SESSION_COOKIE_DOMAIN = None來做到這一點。 – itzMEonTV

+0

我不明白:從你的意思,我可能需要也可能不需要有多個settings.py?我編輯了我的問題以更加清晰地瞭解我的配置 –