2013-06-29 2 views
1

나는 페이스 북 로그인 서로 다른 권한을 요청해야합니다django-social-auth : 공급자를 더 구현하려면 어떻게해야합니까?

  • publish_stream 및 표준 사용자
  • publish_stream, 이메일manage_pages "관리자"사용자에 대한 이메일

Here, 라이브러리의 저자는 새로운 백엔드/제공자를 정의해야한다고 말합니다. 그러나 나는 그것을 어떻게 할 수 있습니까?

나는 어떻게 할 수 있는지 이해할 수 없다. 누군가 제가 단계별로해야 할 일을 설명 할 수 있습니까?

+0

로그인하지 않은 경우 어떻게 관리자인지 어떻게 알 수 있습니까? – Thomas

+0

로그인 한 사용자는 "admin"사용자입니다. 그럼 전에 설명한대로 그의 facebbok 계정을 연결하고 싶습니다 – panizza

답변

2

작업해야이 같은 백엔드 :

from social_auth.backends.facebook import FacebookAuth, FacebookBackend 

class FacebookBackendForAdmins(FacebookBackend): 
    name = 'facebook-admins' 

class FacebookAuthForAdmins(FacebookAuth): 
    AUTH_BACKEND = FacebookBackendForAdmins 
    SCOPE_VAR_NAME = 'FACEBOOK_ADMIN_EXTENDED_PERMISSIONS' 

그런 다음 설정 정의 :

FACEBOOK_ADMIN_EXTENDED_PERMISSIONS = ['email', 'publish_stream', 'manage_pages'] 

을 그리고 관리자가 아닌 사용자에 대한 설정 잊지 마세요 :

FACEBOOK_EXTENDED_PERMISSIONS = ['email', 'publish_stream'] 

또한 AUTHENTICATION_BACKENDS 설정에 추가하십시오 (yourapp/facebook_backend_for_admins.py에 코드를 추가한다고 가정).

AUTHENTICATION_BACKENDS = (
    ... 
    'yourapp.facebook_backend_for_admins.FacebookBackendForAdmins', 
    ... 
) 
+0

그것은 작동하지 않습니다! FacebookAuthForAdmins 클래스 다음에'BACKENDS = { 'facebook-page': USE_APP_AUTH이면 FacebookAppAuth, }'을 추가해야합니다. – panizza

관련 문제