保护 iOS 应用程序和 Rails 应用程序之间通信的最简单方法是什么?

What is the simplest way to protect communication between an iOS application and a Rails application?

我有一个向 Rails 应用程序进行身份验证的 iOS 应用程序。第一次进行身份验证时,它需要提交用户名和密码,作为回报,rails 应用程序会返回一个令牌,iOS 应用程序可以使用该令牌在进一步的通信中进行身份验证。

他们之间传递的信息包括用户的电子邮件地址和其他琐碎信息,但没有像财务细节等高度敏感的信息。我需要一种方法来保护这些通信。

添加此保护的最简单方法是什么?


HTTPS 是一种直接的方式来保护通过网络传输的通信。可以使用 oAuth 来重用和令牌以进行后续通信。您可能希望采用 Facebook 在其 iOS SDK 中采用的方法。他们将登录页面放在 UIWebView (HTTPS) 中,并返回 oAuth 令牌以供后续调用。

编辑:既然 SSL 似乎"不在桌面" - 为什么不只是使用基本身份验证进行身份验证,并让每个调用重新进行身份验证而不是使用令牌。


为您的网络服务器获取可信且有效的证书并使用 SSL / HTTPS。这就是大多数人所做的。

我不建议实施您自己的加密方法。


您在本地使用 SSL 的问题让我想起了本教程

当 Ryan 强制使用 SSL 时,他提到它不能在开发环境(本地)中工作,只能在生产和测试中工作。这个问题在六分钟左右讨论。看来,如果您使用 ssl 部署您的应用程序,那么它将起作用。 Omniauth 和使用外部提供程序也是如此。它在本地不起作用,但在部署时会起作用。