2012-02-21 96 views
0

我有一款應用程序可以在iOS和Android手機上訪問。該應用程序有一個社交組件,所以人們正在向我的服務器發送數據。我應該實施什麼樣的Facebook身份驗證?

我也有這個應用程序的接口,將通過Facebook訪問。

當登錄到經由移動裝置應用程序,使用所述本機應用該裝置中,一個可以只登錄與標準的用戶名和密碼。

但是,很明顯,如果用戶訪問了Facebook應用程序,他們會期望已經被登錄,因爲他們已經登錄到Facebook上。

所以我需要讓這個我的應用程序可以從Facebook在採取日誌,幾乎自動(?)誰是它從在Facebook未來的用戶。

而且,有可能(我敢說「可能」?)的用戶可以從Facebook和應用程序的移動版本之一訪問接口。在這種情況下,我需要能夠確保他們在設備上使用的用戶名/密碼身份驗證指向與其Facebook登錄相關的同一帳戶。

所以...所有的說...我應該研究和實施什麼樣的Facebook認證。我現在正在查看他們的文檔,並且像所有文檔一樣,這並不容易掌握。有服務器端(認證碼流?)和客戶端(隱式流?),以及認證令牌,而且我已經有點迷路了。

另外,我認爲Facebook的做法是希望完全接管我的登錄過程,而不是與僅使用我的移動設備登錄同時使用,但我想確保用戶可以選擇不如果他們不想要使用Facebook身份驗證。

有人能指出我如何做到這一點的正確方向嗎?基本上讓我知道我應該關注哪個部分的文檔。

我有什麼需要注意的問題嗎?

回答

2

你的服務器將收到signed request當你app on facebook.com加載;從這裏你可以找到用戶的FB uid。

如果您爲移動設備客戶端的用戶獲取FB uid,您將能夠在移動設備& facebook.com客戶端之間匹配您應用的帳戶。

bottom of the main authentication docs page給出環節,進一步文檔不同的客戶類型。 main mobile authentication page的側邊欄鏈接指向Android的iOS &的教程& SDK。或者,您可以使用服務器端OAuth流程,因爲您的設備具有支持此功能的瀏覽器。

在移動設備上完成身份驗證後,獲取uid很簡單。

您也可以使用Facebook身份驗證流程而不是您自己的用戶名/密碼身份驗證。