如果您的用户已经登录,我已经使用标签provider_login_url并设置了属性成功连接了另一个帐户process="connect"
。这是放置在为经过身份验证的用户显示的块中的代码片段:
{% load socialaccount %}
<p><a href="{% provider_login_url "facebook" process="connect" %}">Connect a facebook account</a></p>
<p><a href="{% provider_login_url "google" process="connect" %}">Connect a Google account</a></p>
设置SOCIALACCOUNT_QUERY_EMAIL=True
并且不要忘记在您的提供商范围内询问电子邮件:
SOCIALACCOUNT_PROVIDERS = \
{'facebook':
{'SCOPE': ['email', ],
'AUTH_PARAMS': {'auth_type': 'reauthenticate'},
'METHOD': 'oauth2',
'LOCALE_FUNC': lambda request: 'pt_BR'},
'google':
{'SCOPE': ['https://www.googleapis.com/auth/userinfo.profile',
'email'],
'AUTH_PARAMS': {'access_type': 'online'}
},
}
我还想知道是否可以使用电子邮件地址自动关联帐户。我可以在 socialaccount_socialaccount 表的“extra_data”列中看到 Google 和 Facebook 都发送了 "verified_email": true
. 对我来说,自动关联登录和极大的可用性增强就足够了。