我几个月来一直在闲暇时间开发Android应用程序。我已完成了对设备端的所有规划(服务器端交互除外),但我遇到了一个非常陡峭的学习曲线,用于服务器端实现。我研究了大约一个月没有真正的线索。因此,我真的走到了尽头。我正在处理的应用程序包括这些最低要求:
必须从中提供对服务器的帐户创建/身份验证 设备
必须维护某种允许用户授权的会话 进行更改,这些更改将仅影响他们登录的帐户上下文中的服务器上用户数据。
在特定条件下注销/退出服务器的能力。
不需要Web界面,因为此服务仅供Android设备使用。
我已经确定Rails实现对我来说是最理想的选择。我对Rails和服务器的体验非常有限。一位朋友建议我阅读“使用Rails进行敏捷Web开发”以便加快速度。为了理解ORM库,MVC模式和脚手架,我完成了足够的Depot应用程序演示,但后来我厌倦了本书提供信息的方式。一切都是顺序的,作者似乎省略了很多“如何”,说他们稍后会解释,直到那时才担心它。那不是我学习的方式。我离题了。
到目前为止,我在Rails中使用了脚手架来为Accounts表生成模型,视图和控制器。我已经设置了用户名,密码,session_key(用户应该接收并随机生成的密钥,用于在登录后从他们的设备连接)等属性,使用脚手架。我正在验证用户名和session_key以确保它们是唯一的,并且我的字母数字密钥生成正常工作(所有这些都在模型中完成)。
现在我想专注于以一种宁静的方式管理会话。我知道我需要通过让Android设备在发出HTTP请求和访问资源等时将用户的会话密钥传递给服务器来实现这一点,但除此之外,我不知所措。
我正在寻找有人向我提供一个很好的资源(或解释),概述了HTTP请求和响应的工作原理,如何使用请求接收和解析JSON信息,以及如何管理其他授权(假设已经为用户分配了他们的会话密钥)。如果我的方法不对,请告诉我你的建议。
谢谢!
答案 0 :(得分:2)
对于身份验证,您可能需要签出:http://railscasts.com/episodes/250-authentication-from-scratch您基本上只是使用session_key执行身份验证。还有其他更复杂的事情,你可以查看authlogic,devise,sorcery等,看看他们如何实现保持会话活着。由于您需要注销,并且可能需要重新登录,我建议您使用您描述的会话密钥作为主身份验证,然后使用某种易腐密钥在每次请求后重置并发送回客户端作为keepalive。根据您的最终需求,可能具有足够的安全性和功能性。
对于JSON接收,rails具有内置解析功能。看看respond_to。要发回JSON,您可以使用任意数量的方法。最基本的是只允许rails自动转换JSON(使用respond_with时会发生这种情况,如链接中所示)。您还可以构建演示者类或使用更正式的内容,如rabl。