2015-04-20 42 views
1

我在我的Django網站上使用python-social-auth來連接社交帳戶。我已經設法與Twitter和Google合作,但我在Facebook上遇到問題。在URI回調中,request.user給了我'匿名用戶'。這是我的設置:Django - python-social-auth:Facebook返回匿名用戶

settings.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/'} 

... 

urls.py

urlpatterns = patterns('', 
... 
url(r'^auth/$', views.auth_complete), 
... 

views.py

... 
def auth_complete(request): 
    return HttpResponse(request.user) # this gives me AnonymousUser 
... 

如果我忽略了任何設置,請警告我。

回答

0

你應該管道看起來像這樣:

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 
    ) 

here on git issues詳情