2013-11-01 22 views
1

使用自定義用戶模型在我的網站中註冊用戶。它的工作方式是,當用戶註冊時,他/她以0聲望開始,類似於堆棧溢出。也就是說,爲該用戶創建了一個用戶模型的新實例。OAuth和自定義Django User模型如何協同工作?

現在我想添加OAuth到我的網站,但是,我不明白如何當一個新用戶用OAuth登錄到我的網站會爲該用戶創建一個新的django用戶模型實例,使得它與註冊與我的網站和用戶開始聲譽0.

就像堆棧溢出如何實現,如果用戶dosent有一個SO帳戶,他仍然可以用谷歌帳戶登錄並創建他的堆棧溢出配置文件他在SO註冊。

我希望我的問題很清楚, 我只需要知道在這種情況下情況如何協同工作。謝謝你們。

回答

1

OAuth只是第三方提供身份驗證和數據的登錄流程。例如。谷歌,Facebook,Twitter的,OpenID的,雅虎,等等,等等 流程基本上是這樣的:

  1. 用戶訪問您的網站,並點擊「登錄與XYZ」按鈕。
  2. 您將用戶重定向到第三方OAuth點。例如。在與第三方
  3. 第三方用戶用某種代碼重定向到您的域/令牌www.example.com/signin/?code=abcdef
  4. https://www.facebook.com/login.php
  5. 用戶登錄你交換代碼/令牌與THIRD PARTY用於用戶信息,例如名/電子郵件。然後您可以:
    • 您使用此信息在您的系統上創建一個帳戶。
    • 您找到該用戶的現有帳戶並以該用戶的身份登錄該用戶。

這是一個有點抽象而只有OAuth的所有選項的一部分,但它涵蓋了基本的登錄流程。所有與你在那裏的塊都有你需要準備/編碼的步驟。例如。一個視圖,它接受一個代碼/標記並交換數據,您可以使用該數據爲用戶登錄/創建一個帳戶。

大多數第三方都有很好的關於如何使用他們的API完成註冊的文檔。

但是,您將不得不手動創建一些邏輯,因此使用自定義用戶模型沒有任何好處或缺點。

如果這不能回答你的問題,請詳細說明你的意思。

+0

謝謝。這很有幫助。 –