Rails3应用程序的起始位置,它将成为iPhone应用程序的后端

Dan*_*nny 4 api ruby-on-rails devise omniauth ruby-on-rails-3

我想开始研究我对iPhone应用程序的想法,但是我有一些关于从哪里开始的问题.我希望该应用程序主要用于iPhone,但在Web应用程序上有一些功能,例如登录和查看从iphone应用程序创建的内容.我已经开始使用rails3应用程序,并希望将其用作api/app的后端.

我对如何使用身份验证系统感到困惑,以便此应用程序可以作为Web应用程序和iphone应用程序的api工作.

我想在网络和iphone应用程序上使用omniauth登录,因为我只希望用户使用twitter和/或fb登录,但我不知道如何在用户登录iPhone应用程序后验证请求.我知道像设计这样的其他一些宝石允许像api key authenticatable这样的东西,这使得签名api调用变得更容易,但我认为它太过于使用了auth系统.

任何人都可以给我建议如何制作一个既可以作为webapp使用也可以使用iphone通过api进行身份验证的身份验证系统.

谢谢!

iwa*_*bed 6

一些想法......

我会假设iOS应用程序的行为类似于Web浏览器,并像正常一样发送持久性cookie以及每个请求.通过这种方式,您可以使用标准身份验证实践,并且可以让自己开放一天发布基于Web的应用程序版本,而无需对所有内容进行大修.

所以工作流程将是:

  • 从用户输入获取身份验证信息并安全地保存在钥匙串中,以便在每次打开应用程序时无缝登录
  • 使用像Devise这样的东西来进行Rails服务器端身份验证(即不要重新发明轮子)
  • 将数据发布到服务器以创建新会话
  • 以cookie的形式从服务器接收会话信息
  • 将cookie存储在iOS应用程序中
  • 每次请求都会将cookie信息发回服务器
  • 如果他们退出,则销毁您存储的cookie和钥匙串数据,以便在每次打开应用程序时创建cookie

NSURLConnection提供了一种方法来完成大部分工作,甚至可以发送任何存储的cookie以及请求,只要您不告诉它.这是一篇旧的SO帖子,谈论其中的一些内容:使用Cookie的Objective-C异步Web请求

一些资源可以帮助您:

  1. 获取/存储/发送cookie:http://www.calaresu.eu/2011/06/01/using-cookies-with-cocoa-nshttpcookie/
  2. 关于带有Rails的iPhone的精彩幻灯片:http://www.slideshare.net/maximeguilbot/rails-as-ios-application-backend
  3. 适用于在iOS上的Keychain中存储身份验证信息:https://github.com/ldandersen/scifihifi-iphone
  4. 与Rails应用程序交谈:http://restkit.org/ (这里是一个rails示例)

希望有所帮助!