2012-02-10 20 views
5

我有一個web服務器,它使用php服務器和數據庫服務器做了很多ajax請求。我還創建了一個iPhone應用程序和一個Android應用程序,至今一直作爲離線應用程序工作。OAuth:OAuth實現用例

現在我想創建一個API用於在Web服務器和智能手機應用之間同步數據。我應該使用OAuth嗎?我讀過關於OAuth的內容 - 它似乎是用於打開我的API供第三方應用程序使用的情況。但在這裏,我只想確保API和我自己的應用程序之間的數據安全傳輸。

有人可以對此有所瞭解嗎?

回答

4

OAuth的主要用途是使第三方應用程序有權訪問網站上用戶的私人資源,而無需向第三方應用程序提供用戶憑據。例如,假設Twitter想要從您的雅虎帳戶中獲取聯繫人列表。傳統的方式是給你的用戶名和密碼Twitter。但與OAuth,你給他們一個臨時令牌(稱爲Access Token),其中授權Twitter雅虎有限的時間訪問您的聯繫人(直到這個令牌過期或作爲私人資源的所有者,你明確撤銷它)。

也就是說,OAuth不是安全地在網絡上傳輸數據。這是通常使用SSL實現的另一個故事。即使您使用OAuth,也必須使用SSL以確保數據安全地發送和接收。

所以在你的情況下,你必須看看API的用途。如果它是公共API,它不會向呼叫者提供任何私人數據,則不需要使用OAuth。但是,如果API用於訪問個人用戶的私人資源,則可以考慮使用OAuth。如果您選擇實施OAuth,您可能會允許其他第三方應用程序在未來訪問您的API,而不用擔心。

0

好得多取決於你如何保護你的API。您的API是否向公衆開放,特別是郵政網址?如果您的數據不是每個用戶都應該看到的,那麼您如何檢查用戶憑證的身份驗證?

最重要的是我們應該避免通過電話共享用戶名和密碼來始終檢查身份驗證。這意味着,您的API不應該要求用戶名和密碼來驗證用戶是否有效。你可以通過從手機或設備ID或其他東西發送用戶名和密碼來做到這一點。

在這種情況下,OAuth服務器開始救援。基本上,在一個URL上,用戶將發送他的用戶名和密碼以獲得他的訪問令牌。獲得後,我們可以使用訪問令牌來驗證每個請求並採取必要的措施。

您可以使用bshaffer(這是任何PHP框架的最佳OAuth庫之一)向用戶推薦我在Laravel 5中實現OAuth服務器的視頻。 https://www.youtube.com/watch?v=0vGXbWdtjls