2015-08-09 361 views
2

我有一個使用具有現有用戶/會話系統的React構建的Web應用程序。現在,用戶名和密碼被傳遞給服務器進行身份驗證並創建會話。Facebook登錄後使用我現有的登錄系統進行身份驗證?

輸入Facebook登錄(web)。我想同時允許用戶名/密碼和Facebook登錄。所以,現在Facebook對話框出現,用戶可以連接。我現在在客戶端(而不是服務器端)接收Facebook用戶標識和訪問令牌(短命)。現在,我如何在我現有的系統上驗證此用戶並創建會話?

如果我僅使用用戶標識,則表明存在安全問題(任何人都可以使用已知的用戶標識進行身份驗證並獲得劫持的會話)。短命的訪問令牌就是短命的。所以不能用作有效的「密碼」。那麼,如果他們通過Facebook對他們自己進行身份驗證,那麼在我現有的登錄系統上安全認證某人的最佳方式是什麼?

非常感謝。

+1

有相同的問題,很確定我們誤解了登錄流程。你有沒有解決這個問題? – Horse

回答

1

找到具有相同問題的其他用戶here。它通過以下方式解決:

Facebook登錄請求返回用戶ID +短期訪問令牌(客戶端)。

使用服務器端Facebook SDK到check the validity of the access token(如果有效,將返回user_id和app_id字段)。

您可以信任從Facebook API返回的user_id字段,以檢查您現有的用戶數據庫。