我正在尝试通过facebook,twitter和Google Open Auth 2启用登录。我使用的是主文档https://django-social-auth.readthedocs.org/en/latest/index.html。我还使用了http://c2journal.com/2013/01/24/social-logins-with-django/
我已经完成了所有必要的配置。这是我的settings.py
....
AUTHENTICATION_BACKENDS = (
'social_auth.backends.twitter.TwitterBackend',
'social_auth.backends.facebook.FacebookBackend',
'social_auth.backends.google.GoogleOAuthBackend',
'social_auth.backends.google.GoogleOAuth2Backend',
'social_auth.backends.google.GoogleBackend',
'django.contrib.auth.backends.ModelBackend',
)
.....
TEMPLATE_CONTEXT_PROCESSORS = (
"social_auth.context_processors.social_auth_by_type_backends",
"django.contrib.auth.context_processors.auth",
)
......
SOCIAL_AUTH_ENABLED_BACKENDS = ('google','facebook','twitter')
.....
FACEBOOK_APP_ID='**********'
FACEBOOK_API_SECRET='**********************'
FACEBOOK_APP_NAMESPACE = '********_app'
FACEBOOK_EXTENDED_PERMISSIONS = ['email']
GOOGLE_OAUTH2_CLIENT_ID = '***************'
GOOGLE_OAUTH2_CLIENT_SECRET = '**************************'
TWITTER_CONSUMER_KEY = '***************'
TWITTER_CONSUMER_SECRET = '**********************'
........
INSTALLED_APPS = (
............
'social_auth',
)
我已将social-auth添加到我的urls.py
(r'^accounts/login/$', 'django.contrib.auth.views.login',
{'template_name': 'login.html'}),
(r'^accounts/logout/$', 'django.contrib.auth.views.logout_then_login'),
.....
urlpatterns = patterns('',
...
url(r'', include('social_auth.urls')),
...
)
在我的login.html页面上,这是我调用链接的方式
<div>Login with <a href="{% url socialauth_begin 'facebook' %}">Facebook</a></div>
</div>Login with <a href="{% url socialauth_begin 'twitter' %}">Twitter</a></div>
</div>Login with <a href="{% url socialauth_begin 'google-oauth2' %}">Google</a></div>
但问题是,每当我尝试通过这些服务登录时,似乎缺少APP ID。
我在Facebook上收到此错误无效的应用程序ID:无,这个在twitter 上只有unicode对象可以逃脱。没有类型。。谷歌也不行,但它告诉我我不能使用原始IP地址。我正在使用服务器IP地址。请帮忙。
答案 0 :(得分:1)
我弄清楚问题是什么。我安装了python social auth然后安装了django-social auth。我的应用程序仍在使用python-social-auth软件包。
使用命名配置变量的python-social-Auth语法,我添加了前缀
SOCIAL_AUTH_
到我的配置变量,以便它们现在看起来像这样
SOCIAL_AUTH_FACEBOOK_SECRET='*******************'
SOCIAL_AUTH_FACEBOOK_APP_NAMESPACE = '*******'
SOCIAL_AUTH_FACEBOOK_EXTENDED_PERMISSIONS = ['email']
SOCIAL_AUTH_TWITTER_KEY = '********'
SOCIAL_AUTH_TWITTER_SECRET = '************'
SOCIAL_AUTH_GOOGLE_OAUTH2_KEY = '*************************************'
SOCIAL_AUTH_GOOGLE_OAUTH2_SECRET = '****************'
我现在可以登录了。谢谢