2

我正在为 Google Contact Data API 使用两条腿的 OAuth,并在每个请求上生成令牌。

是可取的还是我应该存储令牌以便下次重复使用?

另外,如何检测过时的令牌?

我正在使用python。(和 Gdata Python 客户端库)。

编辑:好的,我想,令牌是在客户端使用加密生成的,而不是从服务器端收集的,所以可以在每个请求上生成令牌。我对么 ?这意味着,用户的令牌永远不会改变(除非我改变共享秘密)对吗?

4

1 回答 1

8

我认为两条腿的 oauth 场景不涉及创建令牌。当用户参与交互(第三回合)时需要令牌,因为需要用户授权该令牌。

用户不直接参与 2-legged oauth,因此没有令牌授权,因此无需存储和创建令牌。

基本上 2-legged oauth 意味着您作为消费者应该使用您的 CONSUMER 共享密钥(提供者也知道)签署您向提供者提出的请求,以便提供者知道哪个消费者正在发出请求 - 这是一个验证它确实是您的应用程序需要数据的方法。但是由于用户(第三条腿)不参与,提供者不会创建一个令牌给你,因为你不需要一个 - 你只需直接访问数据,如果提供者支持两条腿并且你的应用程序是允许使用该数据。

这是一篇很好的文章,可以更详细地解释两足和三足流程的流程。

http://hueniverse.com/2008/10/beginners-guide-to-oauth-part-iii-security-architecture/

只是添加一些东西作为结论:

2-legged oauth 只是一种身份验证方法 - 消费者通过使用他的密钥签署请求来验证自己(这将验证哪个消费者真正发出请求)。

3-legged oauth 是身份验证和授权 - 消费者通过使用他的密钥签署请求进行身份验证,并且他获得未经授权的请求令牌,然后需要由用户授权,因此消费者可以向提供者发出授权请求。

于 2011-01-26T20:35:14.813 回答