4

我正在开发一个使用 xAuth 登录 Twitter 的 iPhone 应用程序。该应用程序还与我自己的 Web 服务进行通信。我不想在 Web 服务中维护用户模型,而是只允许已经通过 Twitter 进行身份验证的任何人发出请求。

高级用例是这样的:用户通过应用程序登录 Twitter 并与之交互。他们还可以通过该应用程序与我的网络服务进行交互。Web 服务本身从不与 Twitter 交互。我不想在我这边维护一个单独的身份验证系统,我希望服务器说“好的,如果 Twitter 说你是 @joshfrench,那么你可以访问。”

不过,我不确定我应该如何验证服务器端的请求。我如何将一些身份验证证明从移动客户端传递到我的 Web 服务?我可以发送现有的 Twitter 令牌并从服务器验证它吗?或者以某种方式使用我的 Twitter 应用程序的凭据签署请求?这甚至是对 OAuth 的有效使用吗?

4

1 回答 1

1

如果您将您的 twitter 应用程序密钥和秘密存储在他的 iphone 应用程序和您的服务器上,然后以某种方式将用户的 oauth 令牌(也称为“访问令牌”)密钥/秘密从 iphone 应用程序传输到服务器,那么您可以执行来自服务器的相同类型的 api 调用。

consumer = OAuth::Consumer.new(app_key, app_secret, …)
access_token = OAuth::AccessToken.new(consumer, user_key, user_secret)
response = access_token.get('/stuff.xml')

那么,可以将该信息从应用程序传输到服务器吗?如果您安全地执行此操作,并且它在用户对应用程序行为方式的期望之内,那么这是对 oauth 的完美使用。

Twitter的服务条款可能不允许这样做 - 我可以想象有一些东西说你不能通过网络传输用户的访问秘密,或者类似的东西。(完全是胡说八道,我认为这种情况不太可能)

于 2011-04-08T15:47:47.867 回答