Написание двухстороннего OAuth-провайдера в Django - PullRequest
2 голосов
/ 02 августа 2011

Я ищу учебник / пример / объяснение о написании двуногого провайдера для OAuth в Django.

Трудно найти документацию о провайдере OAuth, и еще сложнее о двуногомсистема ...

Ответы [ 3 ]

5 голосов
/ 03 октября 2012

Я потратил около 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()
1 голос
/ 29 января 2012

Это хорошая стартовая статья: http://philipsoutham.com/post/2172924723/two-legged-oauth-in-python

Двуногий OAuth для поршня: https://github.com/gregbayer/django-piston-two-legged-oauth

1 голос
/ 02 августа 2011

'2 legged' - это обычный запрос OAuth без токена доступа или секрета токена доступа.Вот и все.Вы по-прежнему используете учетные данные клиента (идентификатор и секрет), но используете пустые строки для параметров токена доступа.В зависимости от используемой вами серверной библиотеки, вы можете опустить параметр oauth_token при выполнении запроса.

...