我需要在facebook登录时提出不同的许可:
Here,图书馆的作者告诉我必须定义一个新的后端/提供者。但是我该怎么做呢?
我不明白我该怎么做。有人能解释一下我一步一步做什么吗?
答案 0 :(得分: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',
...
)