2017-08-09 65 views
0

我想有多個Django項目,但只使用一個用戶數據庫登錄並有該實例(request.user)?我正在使用PostgreSQL。Django一個登錄系統使用postgresql的多個應用程序

我的意思是當我訪問Django的一個應用程序時仍然有相同的cookie用於登錄或用戶另一個應用程序。

+0

這取決於,例如,如果他們在子域上,那麼你可以爲你的整個域設置** session **,使其在所有的子域中都可用。看到[這裏](https://stackoverflow.com/questions/3742675/sharing-django-sessions-on-specific-subdomains) –

回答

1

可能的,這裏有兩個選擇

  1. 您需要在應用程序之間共享DB和配置的Cookie

    一個。分享數據庫爲USERS模型https://docs.djangoproject.com/en/dev/topics/db/multi-db/

    b。更新設置

    https://docs.djangoproject.com/en/1.11/ref/settings/#std:setting-SESSION_COOKIE_DOMAIN會給你訪問跨域餅乾

    SESSION_ENGINE = "django.contrib.sessions.backends.signed_cookies" 
    SESSION_COOKIE_NAME = 'your_cookie_name' 
    SESSION_COOKIE_DOMAIN = '.yoursite.com' 
    SECRET_KEY = "Share same key(this key) between your apps" 
    

    SECRET_KEY應該在這兩個應用程序的settings.py

  2. 嘗試同樣實現Django的OpenID的,像FB的OAuth登錄/谷歌的OAuth 登錄

    下面是Django的OIDC:http://django-oidc-provider.readthedocs.io/en/v0.5.x/

+0

所以當我實現django openid我可以共享django項目之間的登錄?我問過這個問題,因爲我已經有3個項目,每個項目都有不同的ids用戶順序(重複),但是我想創建一個「主」數據庫,然後與該數據庫創建一個用戶登錄應用程序並更改爲另一個人項目檢測到用戶已經登錄 –

+0

是的,你可以共享登錄,但用戶需要授權登錄,就像你如何使用Facebook登錄到Netflix。 – naren

+0

我會嘗試與用戶共享一個數據庫,只能通過我所有的django項目,謝謝@naren –

相關問題