Django-python社交身份验证:Facebook返回匿名用户

Django-python社交身份验证:Facebook返回匿名用户,python,django,facebook,python-social-auth,Python,Django,Facebook,Python Social Auth,我在Django网站上使用python social auth与社交帐户连接。我曾设法与Twitter和谷歌合作,但我在Facebook上遇到了问题。在URI回调中,request.user为我提供了“AnonymousUser”。以下是我的设置: 设置。py: ... AUTHENTICATION_BACKENDS = ( 'social.backends.open_id.OpenIdAuth', 'social.backends.google.GoogleOpenId',

我在Django网站上使用python social auth与社交帐户连接。我曾设法与Twitter和谷歌合作,但我在Facebook上遇到了问题。在URI回调中,
request.user
为我提供了“AnonymousUser”。以下是我的设置:

设置。py:

...
AUTHENTICATION_BACKENDS = (
    'social.backends.open_id.OpenIdAuth',
    'social.backends.google.GoogleOpenId',
    'social.backends.google.GoogleOAuth2',
    'social.backends.google.GoogleOAuth',
    'social.backends.twitter.TwitterOAuth',
    'social.backends.yahoo.YahooOpenId',
    'social.backends.facebook.FacebookOAuth2',
    'django.contrib.auth.backends.ModelBackend',
)

SOCIAL_AUTH_FACEBOOK_KEY = 'xxx'
SOCIAL_AUTH_FACEBOOK_SECRET = 'xxx'

SOCIAL_AUTH_PIPELINE = (
    'social.pipeline.social_auth.social_details',
    'social.pipeline.social_auth.social_uid',
    'social.pipeline.social_auth.auth_allowed',
    'social.pipeline.social_auth.social_user',
    'social.pipeline.user.get_username',
    'social.pipeline.social_auth.associate_by_email',
    'users.pipeline.require_email',
    'social.pipeline.mail.mail_validation',
    'social.pipeline.user.create_user',
    'social.pipeline.social_auth.associate_user',
    'social.pipeline.social_auth.load_extra_data',
    'social.pipeline.user.user_details'
)

AUTH_EXTRA_ARGUMENTS = {'redirect_uri': PROJECT_DOMAIN + '/auth/'}

...
url.py

urlpatterns = patterns('',
...
url(r'^auth/$', views.auth_complete),
...
...
def auth_complete(request):
    return HttpResponse(request.user) # this gives me AnonymousUser
...
视图.py

urlpatterns = patterns('',
...
url(r'^auth/$', views.auth_complete),
...
...
def auth_complete(request):
    return HttpResponse(request.user) # this gives me AnonymousUser
...

如果我忽略了任何设置,请警告我。

您的管道应如下所示:

   SOCIAL_AUTH_PIPELINE = (
        'social.pipeline.social_auth.social_details',
        'social.pipeline.social_auth.social_uid',
        'social.pipeline.social_auth.auth_allowed',
        'social.pipeline.social_auth.social_user',
        'social.pipeline.social_auth.associate_by_email',
        'social.pipeline.user.get_username',
        'social.pipeline.user.create_user',
        'social.pipeline.social_auth.associate_user',
        'social.pipeline.social_auth.load_extra_data',
        'social.pipeline.user.user_details',
        'accounts.social_auth_pipeline.get_profile_data', # custom
        'accounts.social_auth_pipeline.get_profile_avatar', # custom
    )

更多的细节

对我来说不起作用,最后两行我认为没有必要。但是,我同时也在使用
graphql\u auth
graphql\u social\u auth
,干扰会导致这样的问题吗@Mexekanezu您还应该检查
身份验证\u后端
它可能重复,也可能有错误,或者在您的设置中丢失。此外,SOCIAL_AUTH_管道中的顺序也有意义,因为它是遵循文档的。谢谢