1

不同的网站对oauth有不同的顺序。例如, http: //oauth.net/core/diagram.png有 7 个交互!在基于现有库(如下所列)的实施过程中,我们根本看不到步骤 B 和 C 发生。

问题是:

  1. 是否可以跳过 B 和 C(根据上图)。或者库中有错误。
  2. 对于步骤E,我们是否需要重新计算步骤D中收到的除了oauth_verifier和oauth_token之外的所有参数
  3. 假设步骤 C 有助于避免用户手动输入 PIN 是否正确

开发环境信息:

  • 开发语言:Python(2.5)
  • 平台:谷歌应用引擎
  • 下面列出了参考库:

(a) [http://sa-jtwitter-bot.googlecode.com/hg/oauthtwitter.py][2],

(b) [http://python-twitter.googlecode.com/hg/twitter.py][3]

(c) 用户说 http://myapp.com/twitter/authrequest 和回调时运行的实际代码:http://myapp.com/twitter/authresponse,取自 [http://popdevelop.com /2010/07/an-example-on-how-to-use-oauth-and-python-to-connect-to-twitter][4]

4

1 回答 1

0

我的回答不是针对您提到的开发环境,而是通用的。

Ans 1.除非您已经拥有该特定用户的访问令牌,否则您不能跳过步骤 B 和 C。实际上在步骤 B 和 C 中,身份验证/授权弹出窗口从服务提供商打开。然后,用户输入他/她的凭据并允许对用户应用程序进行授权。接下来,在您的回调中,您再次代表用户请求访问令牌。收到访问令牌后,您可以向服务提供商发出请求以获取信息/数据。如果您将访问令牌存储在您的数据库中,那么您可以跳过上述步骤并使用访问令牌直接请求数据,但是很少有服务提供商要求您在一段时间后刷新访问令牌,这涉及通过传递的另一个调用旧访问令牌以获取新访问令牌(例如 Yahoo)

Ans 2.您需要每次重新计算 oauth_signature、oauth_timestamp、oauth_nonce 来发出请求,因为每个请求都会使用/生成此参数,对于其他参数,您可以使用以前的值。

Ans 3.步骤 C 是为了获得用户对您的应用程序要求的操作/范围的授权。

于 2013-07-02T14:12:39.800 回答