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

4
我想开始开发一个iPhone应用程序的想法,但我不知道从哪里开始。我希望该应用程序主要在iPhone上使用,但在Web应用程序上有一些功能,例如登录和查看从iPhone应用程序创建的东西。我已经开始了一个Rails3应用程序,并希望将其用作我的api /应用程序后端。
我对如何使用身份验证系统感到困惑,以使此应用程序可以同时作为Web应用程序和iPhone应用程序的api工作。
我想在Web和iPhone应用程序上使用OmniAuth进行登录,因为我只想让用户使用Twitter和/或FB登录,但我不知道如何在用户登录到iPhone应用程序后认证请求。我知道一些其他的gem,比如Devise可允许像API密钥认证列这样的东西,使签名API调用更容易,但我认为这是过于臃肿的Auth系统,不能使用。
有人能给我建议如何制作身份验证系统,以便在Web应用程序中使用并在通过iPhone进行api认证时工作吗?
谢谢!

你的问题需要更加清晰明了。你是在问关于 iOS/服务器上 FB 认证工作方式的问题吗?还是关于 API 调用的认证问题? - meow
1
我建议把它分成两个问题,这样我才能帮忙。 - meow
请提出具体、有针对性的问题。像这样让问题非常宽泛只会让它被关闭。 - iwasrobbed
抱歉!我会尽力简化它。 - Danny
如果我可以进一步改进问题,请告诉我。谢谢! - Danny
2个回答

6
一些想法...
我认为iOS应用程序应该像Web浏览器一样,发送每个请求的持久cookie。这样,您可以使用标准身份验证实践,并且还可以留下自己开发Web版本的应用程序的可能性,而无需彻底改变所有内容。
因此,工作流程如下:
从用户输入中获取身份验证信息并安全保存在Keychain中,以便每次打开应用程序时都能自动登录。 使用类似Devise的东西来进行Rails服务器端身份验证(即不要重复造轮子)。 将数据POST到服务器以创建新会话。 以cookie的形式从服务器接收会话信息。 在iOS应用程序中存储cookie。 发送cookie信息回服务器以处理每个请求。 如果他们退出登录,则销毁cookie和存储在Keychain中的数据,以便每次打开应用程序时都能重新创建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中使用Keychain进行身份验证的好方法: https://github.com/ldandersen/scifihifi-iphone
  4. 与Rails应用程序通信: http://restkit.org/ (并且这里有一个Rails示例)

希望对您有所帮助!


0

当你查看像slicehost或rackspace这样的iphone应用程序时,通常会在iphone设置中输入用户名/密码...这样就可以在手机上进行身份验证。根据你所做的事情,很有可能你会要求你的iphone与数据库通信并返回一些json/xml数据,然后将其解析到你的应用程序中。

你可以在调用控制器时使用http_autenticate,然后获取该信息...这只需要验证用户的用户名和密码是否发送回你的“rails”应用程序。

但是,你是否想象过仅限于iphone应用程序查看数据或像flickr或twitpic那样的图像?一个对象库,通常是图像,可能被发送回来吗?

个人认为,不要担心“膨胀”。我只是假设这样的评论,再加上这样的问题意味着你可能在担心错误的事情而不真正知道发生了什么。如果你是Richard Stallman之类的人,我提前道歉,但必须得说。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接