我在我的項目中使用django_allauth。
(1)當用戶通過第三方(如facebook)登錄時如何創建django用戶帳戶?
你應該看看:
- 你的管理面板,看到當有人在登錄時會發生什麼
- allauth.facebook.views.login,並嘗試進行跟蹤。登錄過程
這是這樣的(用幾句話):
- 當通過他的Facebook憑據站點中的用戶登錄,他給出的訪問令牌
- 此令牌保存在FACEBOOK_ACCESS_TOKENS表(你可以看到它的管理面板)
- 隨着此訪問令牌以及與Facebook GraphApi的幫助下,我們知道他的social_id
- 當我們知道他的social_id - 我們可以從我們的數據庫中有他的Facebook賬號
- 如果我們沒有在數據庫已經保存它 - 我們保存Fac FACEBOOK_ACCOUNTS表中的電子書帳戶(管理面板中的Facebook帳戶)
- 然後我們在USERS表中創建一個用戶,其中存在Facebook帳戶中的數據。 (你可以看到在用戶區域的新用戶在管理面板)
(2)被分配什麼用戶名用戶以及用什麼樣的密碼?
正如我之前在Facebook GraphApi的幫助下提到的那樣,我們獲得Facebook用戶的用戶名,並將其作爲用戶分配給用戶配置文件。用戶名
(3)某些第三方供應商如Facebook提供了大量有關用戶的信息,如姓名,電子郵件等,那麼如何才能讓他們和保存在用戶帳戶/個人資料?
再次 - Facebook的GraphApi - 它讓你得到你需要的信息。
我在我的網站中集成了django_allauth,它工作正常。如果您有更多問題,我會很樂意回答(如果可以的話)。
編輯 - 化身支持...
我認爲你必須要看看django_allauth settings,特別是在:
SOCIALACCOUNT_AVATAR_SUPPORT (= 'avatar' in settings.INSTALLED_APPS)
啓用Django的支持-avatar。啓用時,用戶在註冊時將本地複製到django-avatar的配置文件圖像 。
儘管我最終發現了它,但還是非常感謝您提供的所有信息。只有一件事我不知道如何解決。目前,我給配置應用程序,使其從Facebook的個人資料中獲取圖像,但我意識到這個圖像沒有保存,所以如果用戶試圖改變頭像,那麼從社交認證中帶來的圖像將會丟失。有沒有辦法保留這一點? – Sachin
感謝您提供的信息,您是否知道在同一個django服務器上添加對多個facebook應用程序的支持的方法? – Nimo