在我目前的项目中,我正在使用两个不同的Django Web应用程序 . 这两个Web应用程序中的一个使用电子邮件密码和python社交身份验证来处理身份验证 . 所以两者都使用 django.contrib.sessions.backends.signed_cookies
作为 SESSION_ENGINE
与 SECRET_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',
)