【问题标题】:Starting place for Rails3 App that will be backend of an iphone appRails3 应用程序的起点,它将成为 iphone 应用程序的后端
【发布时间】:2011-10-23 14:37:01
【问题描述】:

我想开始研究我对 iphone 应用程序的想法,但我在从哪里开始时遇到了一些问题。我希望该应用程序主要在 iphone 上使用,但在网络应用程序上具有一些功能,例如登录和查看从 iphone 应用程序创建的内容。我已经启动了一个 rails3 应用程序,并希望将其用作 api/app 的后端。

我对如何使用身份验证系统感到困惑,以便该应用程序既可以用作 Web 应用程序,也可以用作 iphone 应用程序的 api。

我想使用omniauth 登录网络和iphone 应用程序,因为我只希望用户使用twitter 和/或fb 登录,但我不知道一旦用户登录到iPhone 应用程序后如何验证请求.我知道像 devise 之类的其他一些 gem 允许使用 api 密钥可验证列之类的东西,这使得签名 api 调用更容易,但我认为它的身份验证系统过于臃肿而无法使用。

谁能给我一些建议,告诉我如何制作一个既可以作为 web 应用程序,又可以通过 api 使用 iphone 进行身份验证的身份验证系统。

谢谢!

【问题讨论】:

  • 您的 qn 需要更加清晰。您是在询问 fb authenticationaion 如何跨 ios/server 工作吗?还是 API 调用的身份验证?
  • 我建议先把它分成 2 个 qns,然后我才能提供帮助
  • 请提出具体的、有针对性的问题。像这样把问题放得太宽泛只是要求关闭它。
  • 对不起!我会尽量简化它。
  • 如果我能进一步改进这个问题,请告诉我。谢谢!

标签: ruby-on-rails ruby-on-rails-3 api devise omniauth


【解决方案1】:

当您查看诸如 slicehost 或 rackspace 之类的 iPhone 应用程序时,您通常会在 iphone 设置中输入您的用户名/密码……这样就可以在手机上进行身份验证。根据您的操作,您可能会要求您的 iphone 与数据库通信并返回一些您将解析到您的应用程序中的 json/xml。

你可以http_autenticate你的控制器调用你的控制器,然后它会得到那个信息......这只需要验证你的用户的用户名和密码发送回你的'rails'应用程序。

但是,您是否只设想 iphone 应用程序查看数据或喜欢图像、ala flickr 或 twitpic?可能会发回的对象库(通常是图像)?

就个人而言,不要担心“臃肿”。我只是假设这样的 cmets,再加上这样的问题意味着你可能会担心错误的事情而不知道发生了什么。如果你是 Richard Stallman 之类的,我提前道歉,但必须说出来。

【讨论】:

    【解决方案2】:

    一些想法......

    我假设只是让 iOS 应用程序的行为类似于网络浏览器,并像往常一样随每个请求发送一个持久 cookie。这样一来,您就可以使用标准的身份验证做法,也可以让自己在某天发布基于 Web 的应用版本,而无需彻底检查所有内容。

    所以工作流程是:

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

    NSURLConnection 提供了一种方法来完成大部分工作,只要您不告诉它不要发送请求,甚至可以将任何存储的 cookie 与请求一起发送。这是一篇旧的 SO 帖子,讨论了其中的一些内容:Objective-C Asynchronous Web Request with Cookies

    在此过程中可以帮助您的一些资源:

    1. 获取/存储/发送cookies: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 上的钥匙串中存储身份验证信息:https://github.com/ldandersen/scifihifi-iphone
    4. 与 Rails 应用程序对话:http://restkit.org/(和 here's a rails example

    希望对大家有所帮助!

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-08-21
      • 1970-01-01
      • 2011-02-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-07-16
      • 1970-01-01
      相关资源
      最近更新 更多