我有一个对 Rails 应用程序进行身份验证的 iOS 应用程序。第一次进行身份验证时,需要提交用户名和密码,作为回报,rails 应用程序会返回一个令牌,iOS 应用程序可以使用该令牌在进一步的通信中进行身份验证。
它们之间传递的信息包括用户的电子邮件地址和其他琐碎信息,但没有像财务详细信息等高度敏感的信息。我需要一种方法来保护这些通信。
添加此保护的最简单方法是什么?
HTTPS 是一种直接的方式来确保通过网络传输的通信安全。 可以使用 oAuth 来重用令牌以进行后续通信。 您可能想要采用 Facebook 在其 iOS SDK 中采用的方法。 他们将登录页面放在 UIWebView (HTTPS) 中,并返回 oAuth 令牌以供后续调用。
编辑:由于 SSL 似乎“不可行” - 为什么不直接使用基本身份验证进行身份验证,并让每个调用重新进行身份验证,而不是使用令牌。
为您的网络服务器获取可信且有效的证书并使用 SSL / HTTPS。大多数人都是这么做的。
我不建议实施您自己的加密方法。
您在本地使用 SSL 的问题让我想起了这个教程
Ryan强制使用SSL时,他提到它在开发环境(本地)中不起作用,只能在生产和测试中起作用。这个问题在六分钟左右进行了讨论。看起来,如果您使用 ssl 部署应用程序,那么它将可以工作。 Omniauth 和使用外部提供商的情况也是如此。它在本地不起作用,但在部署时可以。