2013-12-12 63 views
0

我正在開發一個社交網絡。我已經一個RESTful API在C#編碼和客觀C.我的架構我的前端應用程序非常簡單:爲社交應用實施安全寧靜的API

iPhone的用戶(移動應用)< - >的RESTful API < - > DATABASE

我想爲我的服務實現身份驗證並使其安全。另外,我希望能夠在手機中保留某些內容,告訴它是否記錄了日誌,以及是否使用了哪個帳戶。

我一直在閱讀,我發現oauth是這個標準。我有很多問題,我不明白。假設以前是資源所有者和服務器之間共享的......在這種情況下誰是資源所有者?用戶本身?我想象的服務器是RESTful API。關於安全令牌,是否在移動應用程序中進行了編碼?並在服務器?

關於令牌。令牌是否保留有關我的登錄信息?我的意思是,在我使用應用程序時,是什麼告訴我用戶是什麼?這是什麼區別兩個用戶,當他們要求例如GetMyFriends?

最後,最新的API密鑰,我該如何實現它並使用它?

謝謝。

回答

0

這個問題需要一個書卷來提供每一個可能的答案,所以我會盡量回答一些我可以提出的問題,希望能夠引導你走上正確的軌道。

1)如何使我的客戶端 - 服務器連接安全? 對承載您的API的HTTP服務器使用SSL證書。

2)如何實現我的身份驗證並跟蹤哪個用戶當前在系統中處於活動狀態? 有很多方法來實現您自己的身份驗證,我只會提供一個簡短的描述。使用UITextField的兩個實例來獲取用戶的用戶名(或電子郵件)和密碼。將這些值發送到您的REST API。要跟蹤當前活動的用戶,您需要使用CoreData實現一個相當複雜的解決方案,您將在其中創建一個用戶實體,並具有類似於「isActive」布爾值的值,一旦給定用戶,您將設置爲YES登錄。保持它簡單一點,你可以存儲一個NSDictionary表示你的活動用戶參數,你可以從服務器獲得認證後。

3)這是oAuth標準嗎?不,請不要將oAuth用於您自己的應用程序。您只需使用oAuth爲第三方應用程序提供將用戶登錄到Web應用程序的功能。 xAuth是標準的 - 通過應用程序中的用戶界面從用戶請求認證憑證,並通過API將這些憑證發送到服務器並處理響應。

4)關於令牌。令牌是否保留有關我的登錄信息?我的意思是,標記是什麼告訴我用戶是我,而我使用的應用程序?這是什麼區別兩個用戶,當他們要求例如GetMyFriends? 答案#2應該回答你如何知道哪個用戶發送請求。您可以通過在當前會話中設置您感興趣的值來保留有關當前活動用戶的信息,例如user_id,以便區分哪個用戶發送GetMyFriends請求。

我知道這甚至不能遠程覆蓋你所詢問的整個區域,但你需要對這個主題做更好的研究。

+0

謝謝你幫助我比你想象的更多:),即時做着你告訴我和你的工作。我計劃購買一個很好的SSL證書。關於令牌,是的,他們保留有關您的登錄信息,它是一個字符串,每個用戶需要發送每個請求並存儲在服務器中,以便我可以將令牌與用戶相匹配。 –

+0

@RukiaKuchiki很高興的答案可以幫助你。如果您對該主題有任何其他問題,請告知我。我已經構建了幾個社交網絡應用程序,當然可以給你一個或兩個建議。您可以在我的個人資料中查看我所從事的項目。如果您發現需要構建任何類似的功能,請隨時詢問有關實施的信息。 – Eugene