2011-12-22 68 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