我使用python-social-auth和django。 我想通過Facebook授權,但之前,我已經用默認的方式(電子郵件,密碼)與Facebook使用的電子郵箱註冊。 我可以將Facebook帳戶與註冊帳戶關聯嗎? 我試圖搜索,但沒有任何東西python social auth duplicate entry
2
A
回答
4
檢查Associate users by email,這應該解釋如何做到這一點。
關聯用戶通過電子郵件
有時是可取的,如果電子郵件已經匹配的用戶帳戶的社交網絡帳戶會自動關聯。
例如,如果用戶使用他的Facebook帳戶註冊,然後退出並下次嘗試使用Google OAuth2登錄,則可能會很好(如果兩個社交網站都配置了相同的電子郵件地址),則該用戶進入他的Facebook後臺創建的初始帳戶。
這種情況是有可能通過啓用associate_by_email管道的功能,如:
SOCIAL_AUTH_PIPELINE = ( 'social_core.pipeline.social_auth.social_details', 'social_core.pipeline.social_auth.social_uid', 'social_core.pipeline.social_auth.auth_allowed', 'social_core.pipeline.social_auth.social_user', 'social_core.pipeline.user.get_username', 'social_core.pipeline.social_auth.associate_by_email', # <--- enable this one 'social_core.pipeline.user.create_user', 'social_core.pipeline.social_auth.associate_user', 'social_core.pipeline.social_auth.load_extra_data', 'social_core.pipeline.user.user_details', )
此功能默認是關閉的,因爲它不是100%安全這一過程與所有的後端自動化。並非所有提供商都會驗證您的電子郵件帳戶,其他用戶可以利用此優勢。
例如用戶A在您的網站上註冊了郵箱[email protected]。然後惡意用戶註冊到另一個不使用同一帳戶驗證其電子郵件的提供商。最後,此用戶將轉向您的站點(支持該提供商)並註冊,因爲電子郵件是相同的,惡意用戶將控制用戶A帳戶。
編輯:將固定和複製的文檔的詳細信息鏈接到此答案。
相關問題
- 1. 「python-social-auth」或「django-social-auth」
- 2. 與linkedin使用python-social-auth
- 3. python-social-auth with django /?next = variable
- 4. 我該如何解決python-social-auth Bug?
- 5. 從Python Social Auth獲取訪問令牌
- 6. social.actions.do_complete不能在python-social-auth中工作
- 7. Github認證失敗python-social-auth
- 8. python-social-auth和impersonate django用戶
- 9. 零足跡Python-Social-Auth身份驗證
- 10. Python-social-auth返回管理員用戶
- 11. Google App Engine上的python-social-auth失敗
- 12. python social auth,登錄時無需註銷
- 13. python-social-auth + mobile應用程序
- 14. python social auth and django,email with Facebook api 2.4
- 15. django-social-auth profile builder
- 16. android social-auth查詢
- 17. 集成與Django admin一起使用的python-social-auth(social-app-django)
- 18. Django-social-auth不登錄
- 19. 當從django-social-auth移植到python-social-auth時,現場用戶的訪問器發生衝突
- 20. django-social-auth中的Django錯誤
- 21. 密鑰(email)=()已經存在錯誤:python-social-auth
- 22. 將Django 1.6遷移到Django 1.10與python-social-auth時出錯
- 23. 使用python-social-auth自定義登錄過程
- 24. Python-social-auth:禁用自動註冊新用戶
- 25. python-social-auth生成'連接'鏈接作爲字符串
- 26. 使構建下載包oauth2,python-openid和django-social-auth
- 27. Python-social-auth我怎樣才能得到用戶名和Facebook等
- 28. python-social-auth部分管道無法恢復
- 29. 在python-social-auth中對同一供應商有多個accpunts
- 30. python social auth UserSocialAuth不是json可序列化
你需要先登錄吧?否則,它會創建一個新帳戶,最終會出現重複的電子郵件地址,從而引發異常。 – un33k
@ValNeekman,不,通過電子郵件進行關聯僅適用於註銷用戶。當給定的電子郵件已被多個帳戶使用時會引發異常,因爲PSA不知道哪一個用於關聯。 – omab
你確定嗎?,我查看了associate_by_email的代碼,它返回None作爲零電子郵件,爲多個電子郵件引發AuthException,並在找到一個電子郵件時返回用戶。在我的情況下,我註冊了谷歌,註銷,然後註冊與我的Gmail帳戶的Facebook,並繁榮,我得到了用相同的電子郵件地址創建的第二個帳戶。我遇到了AuthException,但沒有在我的情況下引發。當用戶登錄時,一切正常,但我想避免在我的數據庫中重複輸入電子郵件,如果沒有登錄。thx – un33k