2011-12-12 58 views
4

我一直在嘗試使用django-allauth來提供社交註冊,但我無法爲用戶配置配置文件。有沒有Django的allauth它講述的文檔當用戶通過社交註冊登錄時,allauth如何工作

  1. Django的用戶帳戶是如何當用戶通過第三方登錄諸如Facebook創建
  2. 什麼用戶名被分配給該用戶以及用什麼樣的密碼。
  3. 某些第三方供應商如Facebook提供了大量有關用戶的信息,如姓名,電子郵件等,那麼如何才能讓他們和保存的用戶賬號/個人資料

如果有人使用了allauth在他們的項目中,並可以提供一些細節,那麼這將是非常有益的。

回答

10

我在我的項目中使用django_allauth。

(1)當用戶通過第三方(如facebook)登錄時如何創建django用戶帳戶?

你應該看看:

  1. 你的管理面板,看到當有人在登錄時會發生什麼
  2. allauth.facebook.views.login,並嘗試進行跟蹤。登錄過程

這是這樣的(用幾句話):

  1. 當通過他的Facebook憑據站點中的用戶登錄,他給出的訪問令牌
  2. 此令牌保存在FACEBOOK_ACCESS_TOKENS表(你可以看到它的管理面板)
  3. 隨着此訪問令牌以及與Facebook GraphApi的幫助下,我們知道他的social_id
  4. 當我們知道他的social_id - 我們可以從我們的數據庫中有他的Facebook賬號
  5. 如果我們沒有在數據庫已經保存它 - 我們保存Fac FACEBOOK_ACCOUNTS表中的電子書帳戶(管理面板中的Facebook帳戶)
  6. 然後我們在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的配置文件圖像 。

+0

儘管我最終發現了它,但還是非常感謝您提供的所有信息。只有一件事我不知道如何解決。目前,我給配置應用程序,使其從Facebook的個人資料中獲取圖像,但我意識到這個圖像沒有保存,所以如果用戶試圖改變頭像,那麼從社交認證中帶來的圖像將會丟失。有沒有辦法保留這一點? – Sachin

+0

感謝您提供的信息,您是否知道在同一個django服務器上添加對多個facebook應用程序的支持的方法? – Nimo

相關問題