【问题标题】:Writing a Two-legged OAuth provider in Django在 Django 中编写两条腿的 OAuth 提供程序
【发布时间】:2011-10-18 04:27:08
【问题描述】:

我正在寻找有关在 Django 中为 OAuth 编写两条腿提供程序的教程/示例/说明。

很难找到有关 OAuth 提供者的文档,更难找到有关两条腿系统的文档...

【问题讨论】:

    标签: django oauth django-piston


    【解决方案1】:

    '2 legged' 只是普通的 OAuth 请求,没有访问令牌或访问令牌密码。而已。您仍然使用客户端凭据(标识符和密码),但使用空字符串作为访问令牌参数。根据您使用的服务器库,您可以在发出请求时省略 oauth_token 参数。

    【讨论】:

      【解决方案2】:
      【解决方案3】:

      我花了大约 3 天的时间试图弄清楚这一点,并希望为任何可以使用它的人提供这个我最终从我试图查询的服务中获得的工作示例。结果非常容易。附言仅仅因为有人在使用 oauth 1.0并不就意味着你不能使用 oauth2 库。

      要获取 auth2,请键入 pip install oauth2。

      在您的脚本中,您需要:

      import oauth2
      import time
      import urllib2
      
      
      def build_request(url, method='GET'):
          params = {                                            
              'oauth_version': "1.0",
              'oauth_nonce': oauth2.generate_nonce(),
              'oauth_timestamp': int(time.time())
          }
          consumer = oauth2.Consumer(key='python_test',secret='your_secret')
          params['oauth_consumer_key'] = consumer.key
      
          req = oauth2.Request(method=method, url=url, parameters=params)
          signature_method = oauth2.SignatureMethod_HMAC_SHA1()
          req.sign_request(signature_method, consumer, None)
          return req
      

      调用函数并查看输出如下所示:

      request = build_request('http://demo.echo360.com/ess/scheduleapi/v1/terms')
      u = urllib2.urlopen(request.to_url())
      print u.readlines()
      

      【讨论】:

      • 有趣的是,它的源代码与我的其他问题之一完全相同:stackoverflow.com/questions/6924569/…。 oauth2 库仅适用于 OAuth 1.0a。他们图书馆的名字非常混乱......
      猜你喜欢
      • 2011-02-16
      • 1970-01-01
      • 2010-12-11
      • 1970-01-01
      • 1970-01-01
      • 2012-08-17
      • 2012-09-01
      • 2023-03-26
      • 1970-01-01
      相关资源
      最近更新 更多