Python Social Auth多作用域额外数据
我正在为我们的应用程序使用Python Social Auth,最近我创建了一个双作用域Google signin。其想法是允许用户登录谷歌,但随后扩大范围,允许我们阅读他们的电子邮件,并通过电子邮件解析相关内容。我按照文档中概述的建议:创建了一个新的后端: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' 然后将必要的
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)