1

我需要在 facebook 登录时询问不同的权限:

  • 标准用户的发布流电子邮件
  • “admin”用户的publish_streamemailsmanage_pages

在这里,图书馆的作者告诉我必须定义一个新的后端/提供者。但我该怎么做呢?

我不明白我该怎么做。有人可以逐步解释我要做什么吗?

4

1 回答 1

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',
    ...
)
于 2013-07-02T17:17:50.920 回答