2

我是 iPhone 开发的新手,想知道做 2 legged oauth 的标准方法是什么。我已经登陆了 2 legged oauth,因为这个应用程序基本上是我的网络应用程序的另一个界面(就像 iphone 的 twitter / facebook 应用程序),所以在做了一些研究之后,我决定 2 legged oauth 可以完成工作对我来说,而不是 3 条腿。

我并不完全清楚 2-legged oauth 是如何工作的,但具体来说,我不清楚的是如何管理每个用户(每个 iphone)的公钥/私钥。我相信在每部 iPhone 上拥有相同的公钥/私钥并不是一个好主意。理想情况下,每部 iPhone 不应该有不同的私钥吗?如果所有 iPhone 都具有相同的公钥 + 私钥,那么任何人都不会很容易掌握这些并开始从任何地方发出任意请求吗?另外,我怎么知道是哪个用户提出了这些请求?每次请求都发送某种令牌(就像带有会话信息的 cookie)是个好主意吗?

如果有人能更清楚地了解当前的行业标准,以及 iphone 应用程序如何解决这个问题,那就太好了。

非常感谢..

4

1 回答 1

1

两足 OAuth 本身的问题是客户端访问和密钥的存储。Oauth 中的密钥(据我了解)不应通过 HTTP(S) 传输。这意味着您必须将其存储在应用程序中,这使得它很可能被逆向工程和发现。

我建议先使用 HTTPS,使用类似 http://matteomelani.wordpress.com/2011/10/17/authentication-for-mobile-devices/这样简单的东西

Oauth 将使其他客户端应用程序能够连接/使用您的 Rails 应用程序的 API,但是当您使用移动应用程序使用您自己的 API 时,“密钥”问题会杀死它。当您在移动应用程序中使用 facebook 或 twitter 或其他 Oauth 提供商进行消费时,密钥仍在您的后端,用于处理/授权令牌/代码。

到目前为止,这也是我的经验,它并不完全是一个明确的答案,也许其他人也可以对此进行更多说明。

于 2012-08-01T21:17:21.930 回答