Python Social Auth多作用域额外数据

Python Social Auth多作用域额外数据,python,django,google-oauth,Python,Django,Google Oauth,我正在为我们的应用程序使用Python Social Auth,最近我创建了一个双作用域Google signin。其想法是允许用户登录谷歌,但随后扩大范围,允许我们阅读他们的电子邮件,并通过电子邮件解析相关内容。我按照文档中概述的建议:创建了一个新的后端: from social.backends.google import GoogleOAuth2 class GoogleEmailOAuth2(GoogleOAuth2): name = 'google-email' 然后将必要的

我正在为我们的应用程序使用Python Social Auth,最近我创建了一个双作用域Google signin。其想法是允许用户登录谷歌,但随后扩大范围,允许我们阅读他们的电子邮件,并通过电子邮件解析相关内容。我按照文档中概述的建议:创建了一个新的后端:

from social.backends.google import GoogleOAuth2
class GoogleEmailOAuth2(GoogleOAuth2):
    name = 'google-email'
然后将必要的部分添加到settings.py(以及所有必要的URL):

除了创建的UserSocialAuth对象不包含任何额外的\u数据外,一切似乎都正常工作……我对正常的SOCIAL\u AUTH\u GOOGLE\u OAUTH2\u额外的\u数据使用了相同的作用域,它工作得很好,但对于自定义后端来说仍然是nada。非常感谢您的建议


编辑:尝试了几种不同的方法,但仍然无法设置数据。

我没有相同的问题,因此无法回答这个问题,但有一个建议是在
加载额外数据
管道函数中设置一个调试断点,然后从那里开始:

def load_extra_data(backend, details, response, uid, user, *args, **kwargs):
    #
    # <-- Add your debugger of choice, e.g. 
    # import pdb; pdb.set_trace()
    #
    social = kwargs.get('social') or \
             backend.strategy.storage.user.get_social_auth(backend.name, uid)
    if social:
        extra_data = backend.extra_data(user, uid, response, details,
                                        *args, **kwargs)
        social.set_extra_data(extra_data)
def加载额外数据(后端、详细信息、响应、uid、用户、*args、**kwargs):
#
#
def load_extra_data(backend, details, response, uid, user, *args, **kwargs):
    #
    # <-- Add your debugger of choice, e.g. 
    # import pdb; pdb.set_trace()
    #
    social = kwargs.get('social') or \
             backend.strategy.storage.user.get_social_auth(backend.name, uid)
    if social:
        extra_data = backend.extra_data(user, uid, response, details,
                                        *args, **kwargs)
        social.set_extra_data(extra_data)