首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Django - python-social-auth: Facebook返回匿名用户

Django - python-social-auth: Facebook返回匿名用户
EN

Stack Overflow用户
提问于 2015-04-20 01:01:01
回答 1查看 793关注 0票数 1

我在我的Django网站上使用python- social -auth来连接社交账户。我曾与Twitter和Google合作过,但我在Facebook上遇到了问题。在URI回调中,request.user给出了'AnonymousUser‘。这些是我的设置:

settings.py:

代码语言:javascript
复制
...
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

代码语言:javascript
复制
urlpatterns = patterns('',
...
url(r'^auth/$', views.auth_complete),
...

views.py

代码语言:javascript
复制
...
def auth_complete(request):
    return HttpResponse(request.user) # this gives me AnonymousUser
...

如果我遗漏了任何设置,请提醒我。

EN

回答 1

Stack Overflow用户

发布于 2016-07-10 17:47:58

您的管道应该如下所示:

代码语言:javascript
复制
   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
    )

关于git问题更多细节

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/29737753

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档