【发布时间】:2013-06-20 21:17:37
【问题描述】:
我正在使用 Django-allauth,我启用了社交网络登录、google、facebook 和 twitter,由于某种原因 twitter 无法正常工作,
配置
Settings.py(缩短)
DEBUG = True
SOCIALACCOUNT_QUERY_EMAIL="ACCOUNT_EMAIL_REQUIRED"
TEMPLATE_CONTEXT_PROCESSORS = (
'django.contrib.auth.context_processors.auth',
"allauth.account.context_processors.account",
"allauth.socialaccount.context_processors.socialaccount"
)
AUTHENTICATION_BACKENDS = (
"django.contrib.auth.backends.ModelBackend",
"allauth.account.auth_backends.AuthenticationBackend",
)
INSTALLED_APPS = (
'allauth',
'allauth.account',
'allauth.socialaccount',
'allauth.socialaccount.providers.facebook',
'allauth.socialaccount.providers.google',
'allauth.socialaccount.providers.twitter',
)
# Social login
SOCIALACCOUNT_PROVIDERS = \
{ 'facebook':
{ 'SCOPE': ['email', 'publish_stream'],
'AUTH_PARAMS': { 'auth_type': 'reauthenticate' },
'METHOD': 'js_sdk'},
'google':
{ 'SCOPE': ['https://www.googleapis.com/auth/userinfo.profile','https://www.googleapis.com/auth/userinfo.email'],
'AUTH_PARAMS': { 'access_type': 'online' } }
}
# django-allauth settings
EMAIL_CONFIRMATION_DAYS = 7
ACCOUNT_AUTHENTICATION_METHOD = "username"
ACCOUNT_EMAIL_REQUIRED=False
ACCOUNT_EMAIL_VERIFICATION=False
ACCOUNT_USER_DISPLAY=lambda user: user.profile
urls.py(缩短)
urlpatterns = patterns('',
url(r'^accounts/', include('allauth.urls')),
)
Twitter 应用设置
http://my_domain.com/accounts/twitter/login/callback/
consumer key和consumer secret也在/admin/socialaccount/socialapp/上配置
版本: django-allauth==0.8.1
当我点击登录屏幕上的 Twitter 按钮时,我得到的只是一个标题为“社交网络登录失败”的页面,没有调试屏幕,我可以使用 google 或 facebook 登录。
【问题讨论】:
-
我在一个新的 django 项目中尝试了最新的 django-allauth,一切正常。所以这可能是 Django==1.4.1 django-allauth==0.8.1 python 2.6(和 2.7.3)之间的版本不一致
-
错误来自于在 views.py 第 84 行 github.com/pennersr/django-allauth/blob/master/allauth/… OAuthError 中手动引发错误,位于 /accounts/twitter/login/callback/ 无法访问“api.twitter.com”中的私有资源。请求方法:GET 请求 URL:127.0.0.1:8000/accounts/twitter/login/callback/… Django 版本:1.4.1 异常类型:OAuthError 异常值:无法访问“api.twitter.com”的私有资源。 Python版本:2.7.3
标签: django-allauth