简体   繁体   English

Django的一个登录系统使用PostgreSQL的多个应用程序

[英]Django one login system multiple apps using postgresql

I want to have multiple django projects but using just one user database to login and have that instance (request.user)? 我想拥有多个django项目,但仅使用一个用户数据库登录并拥有该实例(request.user)? I am using PostgreSQL. 我正在使用PostgreSQL。

I mean when I access to one app of Django still has the same cookie for login or user another app. 我的意思是,当我访问Django的一个应用程序时,仍然具有相同的cookie来登录或使用另一个应用程序。

Possible and here are your two options 可能,这是您的两个选择

  1. You need to share DB between your apps and configure Cookie 您需要在应用之间共享数据库并配置Cookie

    a. 一种。 To share db for USERS model https://docs.djangoproject.com/en/dev/topics/db/multi-db/ 为用户模型共享数据库https://docs.djangoproject.com/en/dev/topics/db/multi-db/

    b. Update settings 更新设定

    https://docs.djangoproject.com/en/1.11/ref/settings/#std:setting-SESSION_COOKIE_DOMAIN will give you access to cross-domain cookies https://docs.djangoproject.com/zh-CN/1.11/ref/settings/#std:setting-SESSION_COOKIE_DOMAIN将使您能够访问跨域Cookie

     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 should be same in both app's settings.py 两者应用的settings.py中的SECRET_KEY应该相同

  2. Try to implement Django openid, something like FB oauth login / Google oauth login 尝试实现Django openid,类似于FB oauth login / Google oauth login

    Here is Django OIDC: http://django-oidc-provider.readthedocs.io/en/v0.5.x/ 这是Django OIDC: http ://django-oidc-provider.readthedocs.io/en/v0.5.x/

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM