我想爲移動客戶端添加一個REST接口到Django。移動客戶端將通過HTTPS使用JSON。我一直無法找到用於移動設備的「最佳」方式。從四處搜索,似乎#2更有利於#1:如何保護移動應用程序的REST API?
- 使用HTTP身份驗證並建立基於cookie的會話。所有事務都將通過HTTP進行,而JSON消息將僅包含命令或數據。
- 將每個JSON消息中的用戶名和密碼(加密的)傳遞給所有事務,並且不要依賴基於cookie的會話。
我想爲移動客戶端添加一個REST接口到Django。移動客戶端將通過HTTPS使用JSON。我一直無法找到用於移動設備的「最佳」方式。從四處搜索,似乎#2更有利於#1:如何保護移動應用程序的REST API?
數字2是更可取的,而不是推出自己的,我會建議使用OAuth身份驗證,如果可能的話。客戶端和服務器庫現在都可以在大多數平臺上使用。詳情請查詢http://oauth.net。
除非您希望將這些服務提供給其他開發人員(他們將代表您的最終用戶訪問),否則OAuth會過度使用。更好的選擇2,但我會建議使用摘要式身份驗證而不是密碼身份驗證。把它和SSL結合起來,你絕對會很好。
我建議首先用登錄電話發送用戶名/密碼。 JSON將傳回一個authToken或accessToken,移動設備將爲其後的所有呼叫返回。然後您將檢查以確保authToken有效。這是許多API所採用的方法。在他們的數據庫中,他們將API密鑰綁定到他們登錄的用戶帳戶。
任何鏈接到設計這個問題的文檔/模式? – QED 2012-02-29 23:07:44
我肯定會從上面提到的Oath.net網站的「入門」部分開始。它可以鏈接到今天可用的大部分OAuth信息。 – 2012-02-29 23:12:14
糟糕,我的意思是REST – QED 2012-02-29 23:44:50