2011-12-22 81 views
1

我在空閒時間一直在努力開發Android應用程序幾個月。我已經完成了我在設備上的所有計劃(服務器端交互除外),但是我已經遇到了服務器端實現的非常陡峭的學習曲線。我已經研究了大約一個月沒有真正的潛在客戶。因此,我真的陷入死衚衕。那我的工作包括在這些最低要求的應用程序:HTTP請求,會話密鑰以及與Rails相關的授權

  • 必須從
    設備提供帳戶創建/認證服務器

  • 必須保持某種形式的會話,允許用戶授權 進行的更改只會影響登錄到其帳戶的上下文中的服務器上用戶數據。

  • 能夠在特定條件下注銷/由服務器註銷。

Web界面將不是必需的,因爲此服務僅供Android設備使用。

我決定Rails實現對我來說是最合適的選擇。我在Rails和服務器方面的經驗非常有限。一位朋友建議我閱讀「使用Rails進行敏捷Web開發」,以便加快速度。爲了理解ORM庫,MVC模式和腳手架,我充分利用了Depot Application demo,但是後來我厭倦了本書介紹信息的方式。一切都是非常順序的,作者似乎忽略了很多「如何」,並說他們會在稍後解釋,並且直到那一刻才放心。這不是我學習的方式。我離題了。

到目前爲止,我已經在Rails中使用腳手架爲一個Accounts表生成了一個模型,視圖和一個控制器。我爲腳本設置了用戶名,密碼,session_key(用戶應該接收並用於在登錄後從設備連接的隨機生成的密鑰)等屬性。我正在驗證用戶名和session_key以確保它們是唯一的,並且我的字母數字鍵生成工作正常(所有這些都在模型中完成)。

現在我想專注於以安寧的方式管理會話。我知道我需要通過讓Android設備在發出HTTP請求和訪問資源等時將其用戶的會話密鑰傳遞給服務器來實現這一點,但除此之外我不知所措。

我正在尋找某人爲我提供一個很好的資源(或說明),概述了HTTP請求和響應如何工作,如何使用請求接收和分析JSON信息,以及如何管理其他授權(假設用戶已經被分配了他們的會話密鑰)。如果我的方法不完全正確,請告訴我您的建議。

謝謝!

回答

2

要進行身份驗證,您可能需要檢出:http://railscasts.com/episodes/250-authentication-from-scratch您基本上只是使用session_key執行身份驗證。還有其他更復雜的事情你可以做,你可以檢查authlogic,設計,巫術等,看看他們如何實現保持會話活着。由於您需要註銷,並且可能需要重新登錄,所以我建議您考慮使用您描述的會話密鑰作爲主認證,然後在每次請求後重置某種易腐鑰匙並將其發回給客戶端作爲存活。根據您的最終需求,這可能具有足夠的安全性和功能。

對於JSON接收,rails具有內置解析功能。看看respond_to。爲了發回JSON,您可以使用任意數量的方法。最基本的就是允許rails自動轉換JSON(在使用respond_with時發生,如鏈接中所示)。你也可以建立主持人課程或使用一些更正式的東西,如rabl