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 和使用外部提供程序也是如此。它在本地不起作用,但在部署时会起作用。