2013-06-24 5 views
1
내가 장고 - allauth를 사용하고

, 내가 설정 한 소셜 네트워크 로그인, 작동하지 않는 몇 가지 이유 트위터 구글, 페이스 북과 트위터,장고 - allauth 0.8.1 트위터 통합

구성

설정 평

012

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은 (단축) (단축) 383,879,

트위터 앱 설정

http://my_domain.com/accounts/twitter/login/callback/

소비자 키소비자 비밀도/관리/socialaccount/소셜 앱/

버전에 구성됩니다 장고 - allauth == 0.8.1

로그인 화면에서 Twitter 버튼을 클릭하면 "Social Network Login Failure"라는 제목의 페이지가 표시됩니다. 디버그 화면이 없으며 Google 또는 Facebook을 사용하여 로그인 할 수 있습니다.

이 페이지의 URL은 다음과 같습니다 http://my_domain.com/accounts/twitter/login/callback/?oauth_token=leC3t4BYr9KVAyW22ixxxxxxyVyOHiqaUnIhXwoyRM&oauth_verifier=WdDAwxpxxxxxMzWAr5tcx3mUfZ63304fsxxxx16qKM

+0

나는 신선한 장고 프로젝트에 최신 장고 - allauth을 시도해야하며, 모든 것이 잘 작동합니다. 이것은 아마도 버전 간의 불일치 일 수 있습니다. 장고 == 1.4.1 django-allauth == 0.8.1 파이썬 2.6 (및 2.7.3) –

+0

수동으로 발생하는 오류는 views.py 84 행의 https : //github.com/pennersr/django-allauth/blob/master/allauth/socialaccount/providers/oauth/views.py#L84 OAuthError/accounts/twitter/login/callback/ 에서 개인 자료에 액세스 할 수 없음 "api.twitter.com". 요청 방법 : \t http://127.0.0.1:8000/accounts/twitter/login/callback/?oauth_token=sJ1VbozWsHPPMPHHr5xxxSly5vxxxxoauth_verifier=7EkHIxxxxxUsooYqS9HHHTTAFJkExxxxxx4sMUZQGY 장고 버전 : \t 1.4.1 예외 유형 : \t이 요청 URL GET \t OAuthError을 예외 값 : \t "api.twitter.com"의 개인 자원에 대한 액세스 권한이 없습니다. Python 버전 : \t 2.7.3 –

답변

0

최선의 선택은 디버깅과 좌절의 시간 후에 0.8.3 이상 :

에 allauth를 업데이트하는 것입니다, 나는 마침내 내 대답을했다.

트위터가 몇 달 전에 API를 업데이트 했으므로 allauth == 0.8.1과 호환되지 않습니다.

allauth.socialaccount.providers.views.py 라인 - 17

url = 'https://twitter.com/account/verify_credentials.json' 

url = 'https://api.twitter.com/1.1/account/verify_credentials.json'