2017-08-09 23 views
0

複数のdjangoプロジェクトを持っていますが、ログインするのに1つのユーザデータベースを使い、そのインスタンス(request.user)を持っていますか?私はPostgreSQLを使用しています。Djangoの1つのログインシステムpostgresqlを使った複数のアプリケーション

私はDjangoの1つのアプリケーションにアクセスすると、ログイン用の同じCookieを持っていることを意味します。

+0

たとえば、サブドメインにある場合は、ドメイン全体に対して**セッション**を設定して、すべてのサブドメインで利用できるようにすることができます。 [here](https://stackoverflow.com/questions/3742675/sharing-django-sessions-on-specific-subdomains) –

答えて

1
可能

とここにあなたの二つのオプション

  1. あなたはアプリ間でDBを共有し、クッキー

    設定する必要があります。 USERSモデルのdbを共有するにはhttps://docs.djangoproject.com/en/dev/topics/db/multi-db/

    b。 Updateの設定

    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は、Djangoのopenidのを実装するために、両方のアプリのsettings.py

  2. の試みを同じにする必要がありますクロスドメインのクッキーにアクセスできるようになり、FBのOAuthのログインのようなもの/ここではGoogleのOAuthの ログイン

    はジャンゴOIDCです:http://django-oidc-provider.readthedocs.io/en/v0.5.x/

+0

を参照してください。私はdjango openidを実装するときにdjangoプロジェクト間でログインを共有できますか?私はすでに各プロジェクトでIDの異なるユーザー(繰り返し)3プロジェクトを持っているので、私はこれを尋ねたが、ユーザーがアプリケーションにログインし、他の人に変更する場合は、そのデータベースで "マスター"データベースを作成したいプロジェクトは、ユーザーがすでにログインしていることを検出しました –

+0

はい、あなたはログインを共有できますが、ユーザーはFacebookを使用してNetflixにログインする方法のようにログインを認証する必要があります。 – naren

+0

私はすべての私のdjangoプロジェクトを通してユーザーとデータベースを共有しようとします、ありがとう@naren –

関連する問題