我需要在 facebook 登录时询问不同的权限:
- 标准用户的发布流和电子邮件
- “admin”用户的publish_stream、emails和manage_pages
在这里,图书馆的作者告诉我必须定义一个新的后端/提供者。但我该怎么做呢?
我不明白我该怎么做。有人可以逐步解释我要做什么吗?
我需要在 facebook 登录时询问不同的权限:
在这里,图书馆的作者告诉我必须定义一个新的后端/提供者。但我该怎么做呢?
我不明白我该怎么做。有人可以逐步解释我要做什么吗?
像这样的后端应该可以完成工作:
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',
...
)