2011-10-27 25 views
2

我正計劃開發一個嚴重依賴Facebook集成的網站,因爲這個原因,我將主要推動用戶使用「facebook登錄」選項。出於某種原因,我不想忽略那些不喜歡使用Facebook登錄的用戶,因此我將通過電子郵件和密碼實施經典的用戶註冊。網站使用Facebook和/或電子郵件進行雙重登錄

現在我的問題是:

  • 什麼來管理登錄正確的方法是什麼?我是否應該將fb用戶數據存儲在記錄中,首先登錄(作爲註冊)保存它們的fb_userid作爲在我的應用程序中使用其數據的參考?我可以在首次訪問時獲得並存儲他們的Facebook電子郵件嗎?

  • 如果用戶只通過電子郵件註冊,有一天想用Facebook登錄,會發生什麼?這會創建一個新的用戶記錄還是應該將兩個登錄合併到一個唯一的用戶記錄中?

  • 我是否需要爲fb用戶設置cookie和會話?

我看到很多網站現在使用這個雙重登錄,但我從來沒有想過他們如何管理它。我第一次只想使用Facebook登錄,但很多人認爲這是一個壞主意。你怎麼看?

感謝您的幫助!

回答

3

我有同樣的事情。我做什麼:

我的用戶表有:ID,facebook_uid,電子郵件,密碼

  1. 如果有人fconnects - 我創建一個新用戶對他來說,獨特的AI ID,將Facebook的用戶ID,電子郵件,並生成一個隨機密碼。我通過郵件向他發送密碼。

  2. 如果有人註冊 - Facebook的uid是0

  3. 有人試圖註冊和電子郵件已經與Facebook的ID存在 - 他在郵件中有密碼,或者可以使用忘記密碼等

  4. 有人試圖fconnect和電子郵件已經存在 - 我用的是現有的帳戶:

我的做法是,我可以向他發送確認鏈接驗證電子郵件。 fconnect是我的確認。在這種情況下,我想給他賬戶(因爲他擁有電子郵件)。我可以讓他輸入密碼並重新生成併發送給他。

當然,您可以以不同的方式處理每種情況 - 基本方法 - 驗證電子郵件=您擁有一個帳戶。 fconnect =驗證郵件

編輯:注意 一旦用戶有fconnected - 我設置會話/ cookie中的登錄參數。我不想在每個頁面視圖上向Facebook服務器發出請求

+0

這似乎是管理它的方式。感謝您的簡潔明瞭;) – Andycap

+0

出於好奇,您是否只存儲令牌或更多數據?不要介意這個愚蠢的問題,這是我的第一個PHP項目,不是一種形式;) – Andycap

+0

你可以存儲令牌,真的取決於你做什麼。在我的一個項目中,我不保存它。在另一個項目中,我會在後臺(在使用系統守護進程的服務器上)獲取用戶數據(如朋友列表),所以它不會取決於用戶的瀏覽等。 – galchen

相關問題