2013-08-28 14 views
0

我已經構建了一個自定義登錄系統。它工作正常,但因爲用戶經常忘記他們的用戶登錄詳細信息,所以我想使用oauth進行Gmail和Facebook訪問。將現有的用戶配置文件與Facebook,Gmail和Twitter相匹配

如何將現有的用戶數據與Facebook或Gmail數據進行匹配?

+6

你是什麼意思「將現有的用戶數據與Facebook或Gmail數據匹配」?他們唯一的方法就是讓當前(登錄)用戶將他們的登錄賬號連接到他們的Facebook/Gmail賬戶。用戶必須這樣做。你不能爲他們做。 [OmniAuth](https://github.com/intridea/omniauth)可以讓你更輕鬆地完成這項任務。通過示例, – Mischa

+0

。有些用戶名:[email protected]ple.com。現在我希望約翰可以通過他的臉書賬號訪問他的[email protected]信息。如何知道我可以用正確的用戶名匹配facebook登錄名? – Remco

+1

如果該用戶已經登錄,那麼你知道用戶名,對吧?如果該用戶沒有登錄,那麼**無法將他的Facebook登錄與他的帳戶相匹配。 (除非你是國家安全局) – Mischa

回答

1

如果您有一位用戶,並且它使用Facebook或Gmail OAuth登錄,您可以通過用他的電子郵件查看當前用戶表來識別它(假設您需要在系統中確認電子郵件,否則它可以成爲一個真正的混亂)。另一方面,Twitter不允許您查看用戶的電子郵件,因此您必須尋找替代方法。將用戶帳戶與外部用戶帳戶聯合起來的更直接的方法是簡單地要求在第一次OAuth登錄中添加綁定帳戶。

忘記他們的登錄信息似乎不是使用OAuth的最佳動機,而是實現「忘記密碼/登錄」功能。 OAuth應該通過連接到其他服務來改善用戶體驗,並以更簡單的方式使用相同的「朋友」或「共享」事物。 (這似乎是我個人的觀點,因爲我沒有資料來源,@Mischa不同意)。但是,正如你注意到的那樣,如果你不想自己實現一個,它也簡化了你的用戶管理。

+0

不必記住每個不同站點的數百個不同的用戶名/密碼是OAuth的最佳選擇。至於關於電子郵件的評論:這是一種非常不可靠的方法。他可以使用與Facebook上不同的電子郵件地址。唯一可靠的方法是讓用戶在建立連接時登錄到您的站點。然後,當你建立連接時,你知道它是誰,因爲他是'current_user'。 – Mischa

+0

@Mischa這確實是不可靠的,但有時你需要拋出可靠性,以使事情變得更簡單。如果他在Facebook上使用其他電子郵件,它將在該網站上有一個新帳戶,沒有什麼大不了的。如果用戶想要將他的Facebook帳戶加入到原始網站帳戶中,您可以隨時選擇讓他手動完成此操作。我想說大多數人在每個網站都使用一個電子郵件進行註冊 - 我沒有數據,但我相信你會覺得這是對的。那麼爲什麼不簡化呢? – fotanus

相關問題