2011-03-10 42 views
3

PS:我理解OpenID身份驗證和Oauth授權(我認爲)的概念。而我使用Facebook作爲Oauth授權的用戶註冊工作流程

它一直是網站給問你一個趨勢的Oauth的例子爲「註冊」的,但在註冊工作流程中(「用Facebook登錄」從你的Facebook接收權限和成員信息後,帳戶),他們仍然要求你選擇一個用戶名和密碼。它創建一個本地用戶,並將該用戶「鏈接」到Facebook賬戶。

但現在我注意到在註冊過程中像buzzfeed甚至stackoverflow的網站,他們似乎正在做Facebook的全面認證。您授予網站對您的Facebook帳戶的權限,並且您現在已經登錄(以某種Facebook用戶身份登錄)

更新(更正授權到認證): 這是否意味着Facebook連接現在執行「身份驗證」?這是否意味着用戶不再存儲在本地?

回答

1

在stackoverflow的情況下,我認爲他們在內部創建用戶帳戶,但他們代表用戶創建用戶名 - 如user1243534,如果用戶沒有指定他自己的用戶名。此內部帳戶用於存儲用戶的所有與計算器相關的信息,該信息不存在於Facebook(或其他提供者)中 - 聲譽,問題,答案和所有內容。

如果你的情況,你的web應用程序不需要記錄與用戶相關的任何數據,除了會話中有一些會話臨時變量(他用Facebook登錄,他的Facebook名稱等),那麼你可以省略本地用戶存儲和賬戶。在這種情況下,當他的當前會話到期時,您的應用程序將丟失與該用戶有關的任何數據。

但是,如果您想存儲有關用戶的任何數據,例如,他登錄的次數,他喜歡的語言,持久性設置或任何未存儲在提供程序中的內容,都應該創建本地用戶帳戶。

您的第一個問題:是的,如果沒有提供其他身份驗證過程,則每次用戶想要登錄時,facebook都會進行身份驗證。

第二個問題:取決於您是否希望將用戶數據存儲的時間超過會話持續時間(未從提供程序獲取的用戶數據)。