2012-12-05 79 views
1

不同的网站对oauth的顺序不同。例如,http://oauth.net/core/diagram.png有7个互动!在基于现有库(下面列出)的实现过程中,我们看不到步骤B和C。OAuth Twitter登录序列

的问题是:

  1. 是否确定跳过B和C(每上面图)。或者库中存在缺陷 。
  2. 对于步骤E,我们需要重新计算,除了oauth_verifier和组oauth_token所有参数都在步骤d收到
  3. 它是正确的假设,步骤C,有助于避免用户在输入PIN码手动

开发环境资料:

  • 开发语言:Python的(2.5)
  • 平台:谷歌应用程序引擎
  • 参考, NCE库列举如下:

的(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到微博] [4]

回答

0

我的答案是不特定的ic提供给你提到的开发环境,但是是通用的。

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

答2.您需要重新计算oauth_signature,oauth_timestamp,oauth_nonce每次提出请求,因为该参数用于/为每个请求产生的,别人可以使用以前的值。

答案3.步骤C是从用户那里获得您的应用程序要求的操作/范围的授权。