我需要使用webservice连接到另一个Web应用程序。该Web应用程序使用OAuth协议连接到它们的api。我是OAuth的新手,但我确实阅读了文档:D。 我的问题是,要将我的Web应用程序与他们连接,我需要从他们那里获得哪些数据? 我基本上需要获取资源所有者的所有数据。
我想我需要:
我需要这个信息吗?
我可以保存资源所有者令牌凭据,以便将来获取数据而无需资源所有者登录吗?
在他们的网络应用程序中,它说我可以从他们那里获得以下信息:
答案 0 :(得分:1)
我遵循了这个Tutorial,这很容易理解。
答案 1 :(得分:1)
我需要这个信息吗?
是。您需要资源所有者通过OAuth流授权您的应用程序。这由令牌凭证表示(以前称为访问令牌)。
我可以保存资源所有者令牌凭据,以便将来获取数据而无需资源所有者登录吗?
是。令牌凭据在到期时间,您可以访问的资源类型等方面可能有限制。但是如果令牌凭据已过期(或资源所有者自己无效) - 您的请求将不被接受,您将不得不请资源所有者进行新授权。
OAuth访问令牌和机密 - >这些是资源所有者的令牌凭证吗?
是。直到最近,令牌凭证在规范中被称为访问令牌,有关名称更改的信息可以在此处找到:http://tools.ietf.org/html/rfc5849#section-1.1
OAuth服务密钥和密码 - >这些是什么?
这些很可能是消费者的关键和秘密。
答案 2 :(得分:0)
以下是使其全部正常运行的流程序列。
在API提供程序(在您的案例中为Web应用程序)上注册。这将为您生成客户端ID和客户端密码。
交换客户端ID,客户端密码,最终用户ID /密码(http auth标头中的base64编码格式),范围,使用API提供商的授权服务授予并获取授权码。
使用API提供商的令牌服务交换客户端ID,客户端密码,授权码并获取令牌。
将此令牌与其他查询参数一起使用以继续API请求。
以上序列适用于grant_type = code。如果您要使用任何其他授权类型,则#2不适用,而在#3中,您提供最终用户ID /密码以直接获取令牌。