Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/355.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python request.user返回None Django social auth应用程序Django_Python_Django_Azure_Django Socialauth - Fatal编程技术网

Python request.user返回None Django social auth应用程序Django

Python request.user返回None Django social auth应用程序Django,python,django,azure,django-socialauth,Python,Django,Azure,Django Socialauth,我是django social auth的新手。我正在使用社交身份验证应用程序django对Microsoft Azure AD用户进行身份验证。身份验证过程运行良好,并且在数据库中创建了用户对象。但是request.user在视图内部返回null 设置.py INSTALLED_APPS = [ 'django.contrib.admin', 'django.contrib.auth', 'django.contrib.contenttypes', 'djang

我是django social auth的新手。我正在使用
社交身份验证应用程序django
对Microsoft Azure AD用户进行身份验证。身份验证过程运行良好,并且在数据库中创建了用户对象。但是request.user在视图内部返回null

设置.py

INSTALLED_APPS = [
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
    'social_django',
    # 'social.apps.django_app.default',
]

MIDDLEWARE = [
    'django.middleware.security.SecurityMiddleware',
    'django.contrib.sessions.middleware.SessionMiddleware',
    'django.middleware.common.CommonMiddleware',
    'django.middleware.csrf.CsrfViewMiddleware',
    'django.contrib.auth.middleware.AuthenticationMiddleware',
    'django.contrib.messages.middleware.MessageMiddleware',
    'django.middleware.clickjacking.XFrameOptionsMiddleware',
    'social_django.middleware.SocialAuthExceptionMiddleware',
]
TEMPLATES = [
    {
        'BACKEND': 'django.template.backends.django.DjangoTemplates',
        'DIRS': [os.path.join(BASE_DIR, 'templates'),],
        'APP_DIRS': True,
        'OPTIONS': {
            'context_processors': [
                'django.template.context_processors.debug',
                'django.template.context_processors.request',
                'django.contrib.auth.context_processors.auth',
                'django.contrib.messages.context_processors.messages',
                'social.apps.django_app.context_processors.backends',
                'social.apps.django_app.context_processors.login_redirect',

            ],
        },
    },
]
AUTHENTICATION_BACKENDS = (
   'social.backends.azuread.AzureADOAuth2',
 )
#settings.py
SOCIAL_AUTH_PIPELINE = {
  'pipeline.new_users_handler'
}
看法


当我以admin或使用admin创建的任何其他用户身份登录时,request.user工作正常。问题是当通过social auth进行身份验证时。

您不需要所有这些,请使用简单的语法

def home(request):
   context = {
       'title':'Home Page',
       'year':datetime.now().year,
       'request': request,
       'user': request.user,
     }
   return render(
     request,
     'index.html',context)
但是,
request.user
将返回null,直到用户未登录为止

最后将其添加到中间件中

'social_django.middleware.SocialAuthExceptionMiddleware', 
'social_django.context_processors.backends',  # <--
'social_django.context_processors.login_redirect', # <--
将此添加到末尾的模板上下文处理器

'social_django.middleware.SocialAuthExceptionMiddleware', 
'social_django.context_processors.backends',  # <--
'social_django.context_processors.login_redirect', # <--

'social_django.context_processors.backends',#即使使用Azure进行了身份验证,request.user仍然不存在。我已经添加了两个conext处理器。添加中间件
'social\u django.middleware.SocialAuthExceptionMiddleware',
没有解决问题。如果是,请指导我找到解决方案