2012-07-16 67 views
15

我想用Facebook登錄實現iOS應用程序。我希望我的應用的用戶能夠與他們的社交圖形進行交互(即發佈到他們的流中)。爲此,我會使用Facebook iOS SDK。
當用戶已經通過Facebook認證時,他們也應該能夠在我的應用程序的服務器端使用一些服務。我如何根據服務器上的服務驗證用戶?iOS客戶端,Facebook API和服務器之間的安全通信

在我的iOS應用程序中,我可以使用iOS Facebook SDK查詢訪問令牌(用於我的Facebook應用程序)。我應該將該訪問令牌與Facebook用戶ID一起發送到我的服務器嗎?服務器能否驗證訪問令牌是否有效?或者應該只有我的iOS應用程序與Facebook API進行通信?服務器可以發佈到我的Facebook牆上,還是應該通過iOS應用完成?

+2

爲什麼下投票,這個問題似乎很有道理,我和顯示在解釋問題的一些努力。 – Till 2012-07-16 20:28:04

+0

@Till這個問題絕對有道理。也許有人不喜歡措辭。 – borisdiakur 2012-07-16 20:40:58

回答

5

UPDATE:

Facebook目前提供了一個安全的文檔/清單: https://developers.facebook.com/docs/facebook-login/security/


您至少有兩種選擇:

  1. 發送的訪問令牌您服務器並使用該令牌處理對Facebook 的所有請求(如果令牌無效,則會出現錯誤,只需將其傳遞給客戶端)。 =>安全但有點複雜。

  2. 獨立

    • 客戶端(iOS應用)和Facebook的API和
    • 你的客戶和你的服務器之間的通信。

    您的應用程序將處理過的Facebook的iOS SDK中的所有請求,Facebook的API,然後溝通所產生的數據,如各類的Facebook的ID,你的服務器。沒有某種加密方式,這種方法是完全不安全的;您可以將一些加密散列函數發送到您的服務器,並使用存儲在您的服務器和iOS應用程序中的密鑰對其進行驗證。 =>這種方法稍微容易實現,但安全性較差,因爲可以通過逆向工程來竊取密鑰。此外,在將應用提交到應用商店時,您必須檢查「我正在使用加密」複選標記。

這實際上取決於您願意承擔多少風險,您提出什麼樣的要求,您擁有哪種服務等等。

服務器可以驗證訪問令牌是否有效嗎?

是的,看看這裏:Facebook access token server-side validation for iPhone app

相關問題