django-social-auth后端未找到

时间:2013-03-13 21:04:51

标签: django python-2.7 django-socialauth

我正在尝试使用django-social-auth在Twitter,GitHub,Google和Facebook上添加身份验证,而我希望在那里的后端不可用。

根据手册安装:

AUTHENTICATION_BACKENDS = (
    'social_auth.backends.twitter.TwitterBackend',
    'social_auth.backends.contrib.github.GithubBackend',
    'social_auth.backends.facebook.FacebookBackend',
    'social_auth.backends.google.GoogleOAuthBackend',
    'social_auth.backends.google.GoogleOAuth2Backend',
    'social_auth.backends.google.GoogleBackend',
    # ....unnecessary backends

    'guardian.backends.ObjectPermissionBackend',
    'django.contrib.auth.backends.ModelBackend',
)

TWITTER_CONSUMER_KEY         = ''
TWITTER_CONSUMER_SECRET      = ''
FACEBOOK_APP_ID = ''
FACEBOOK_APP_SECRET = ''
GOOGLE_CONSUMER_KEY          = ''
GOOGLE_CONSUMER_SECRET       = ''
GOOGLE_OAUTH2_CLIENT_ID      = ''
GOOGLE_OAUTH2_CLIENT_SECRET  = ''

LOGIN_URL          = '/login/'
LOGIN_REDIRECT_URL = '/'
LOGIN_ERROR_URL    = '/login/'

SOCIAL_AUTH_FORCE_POST_DISCONNECT = True
SOCIAL_AUTH_FIELDS_STORED_IN_SESSION = ['next',]

在模板中添加了网址:{% url socialauth_begin 'twitter' %}, {% url socialauth_begin 'github' %} etc,在此之前一切正常。

但是当我点击链接时 - 它会给我错误:Incorrect authentication service "twitter"

根据手册,我检查了social_auth.backends.BACKENDS的内容,但只有{'openid': <class 'social_auth.backends.OpenIdAuth'>}

为什么我已经启用的后端不存在以及为什么有一个我实际上没有启用的后端?

PS:python 2.7.3,django 1.4.5,django-social-auth 0.7.19

1 个答案:

答案 0 :(得分:5)

如果有人会像我一样愚蠢地碰到这个错误信息。 您只需要来自身份验证提供程序,Twitter,Google等的KEY和SECRET。它在错误消息中没有说明这一点,但这就是它失败的原因。