2013-10-24 127 views
0

對於Django的網站,我在做我有以下的認證系統: - 人們可以通過Facebook 登錄 - 人們可以通過Django的驗證登錄聯合收割機Django的權威性和Facebook權威性

我現在已經到達我可以通過Facebook登錄的一點。當Facebook返回時,我會保存用戶的姓名和電子郵件等。現在的問題是:我怎樣才能將這些Facebook帳戶與Django身份驗證系統合併?

user = auth.authenticate (user , password) 
auth.login (request , user) 

但我將如何去了解這個當人們登錄通過Facebook,這當然不通過密碼:

例如,一個「正常」的用戶將通過登錄?

希望你明白我的問題=)!

回答

1

你必須

  1. 商店FB的身份和在某些型號的鑰匙。
  2. 創建具有不可passford
  3. 相關Django的用戶創建一個認證後端,工作與該模型和認證通過社會憑據

順便說一下,有一個Django的社會AUTH包與許多人至極解決了一起這個任務,爲什麼不使用它?

+0

嗯,這是有道理的:爲這些用戶創建一個唯一的密碼。謝謝你的提示。 關於社交認證軟件包:我知道這一點,但我目前正在學習Python和Django的繩索,如果我自己嘗試,而不是僅僅使用軟件包,我會更好地理解這些東西。 – Diederik

+0

不唯一,但是__unusable__,例如auth.models.UNUSABLE_PASSWORD。由於pwd更改和驗證管理是在視圖方面進行的,因此您的後端可能允許通過fb記錄的用戶更改其密碼而不要求提供舊值(檢查'user.has_usable_password()') – alko

+0

而這正是我爲什麼要這麼做的原因東東。感謝您指點我正確的方向。我會讀更多關於這個! – Diederik