如果您的用戶已經登錄,我已經使用標記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'}
},
}
我還想知道是否可以使用電子郵件地址自動關聯帳戶。我可以在Google和Facebook發送"verified_email": true
的socialaccount_socialaccount表的「extra_data」列中看到。對我來說,自動關聯登錄和一個很好的可用性增強就足夠了。
如果兩個社交帳戶的電子郵件地址相同,則可能會發生自動鏈接刺戳。我回答了一個類似的問題,你可能會發現它很有用 - http://stackoverflow.com/a/19443127/805427 – elssar