在我目前的项目中,我正在使用两个不同的Django Web应用程序 . 这两个Web应用程序中的一个使用电子邮件密码和python社交身份验证来处理身份验证 . 所以两者都使用 django.contrib.sessions.backends.signed_cookies 作为 SESSION_ENGINESECRET_KEY 相同 .

当用户在app1上使用电子邮件密码登录时,他可以访问app2并进行身份验证,但是当他连接到例如谷歌或Facebook然后登录他无法访问app2并且未经过身份验证 . 但为什么?

这是我的settings.py

SESSION_ENGINE = "django.contrib.sessions.backends.signed_cookies"
SESSION_COOKIE_NAME = 'curr_user_session'
SESSION_COOKIE_SECURE = True
SESSION_COOKIE_DOMAIN = ".example.com"
SECRET_KEY = "just4testing"

INSTALLED_APPS = [    
    # Add your apps here to enable them
    'django.contrib.admin',    
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
    "oidc_provider",
    "core",
    'django.contrib.auth',
    "social_django",
]
TEMPLATES = [
    {
        'BACKEND': 'django.template.backends.django.DjangoTemplates',
        'DIRS': [],
        'APP_DIRS': True,
        'OPTIONS': {
            'context_processors': [
                '...',
                'social_django.context_processors.backends',
                'social_django.context_processors.login_redirect',
            ],
        },
    },
]

SOCIAL_AUTH_PIPELINE = (
    'social_core.pipeline.social_auth.social_details',
    'social_core.pipeline.social_auth.social_uid',
    'social_core.pipeline.social_auth.auth_allowed',
    'social_core.pipeline.social_auth.social_user',
    'social_core.pipeline.social_auth.associate_user',
    'social_core.pipeline.social_auth.load_extra_data',
    'social_core.pipeline.user.user_details',
)