1 В избранное 0 Ответвления 0

OSCHINA-MIRROR/zakzou-liboauth2

Присоединиться к Gitlife
Откройте для себя и примите участие в публичных проектах с открытым исходным кодом с участием более 10 миллионов разработчиков. Приватные репозитории также полностью бесплатны :)
Присоединиться бесплатно
В этом репозитории не указан файл с открытой лицензией (LICENSE). При использовании обратитесь к конкретному описанию проекта и его зависимостям в коде.
Клонировать/Скачать
Внести вклад в разработку кода
Синхронизировать код
Отмена
Подсказка: Поскольку Git не поддерживает пустые директории, создание директории приведёт к созданию пустого файла .keep.
Loading...
README.md

liboauth2

Лёгкий Python-клиент для OAuth2

Установка

PIP:

pip install liboauth2

Easy Install:

easy_install liboauth2

Использование

Пример для Tencent Weibo

# -*- coding: utf-8 -*-

import liboauth2
import urllib
from flask import Flask, redirect, request

CLIENT_ID = 'ваш client id'
CLIENT_SECRET = 'ваш client secret'

client = liboauth2.Client(CLIENT_ID, CLIENT_SECRET)

REDIRECT_URI = 'http://localhost:5000/callback/'
AUTH_URI = 'https://open.t.qq.com/cgi-bin/oauth2/authorize'
ACCESS_TOKEN_URL = 'https://open.t.qq.com/cgi-bin/oauth2/access_token'

app = Flask(__name__)
app.debug = True

@app.route('/')
def home():
    # получаем URL авторизации
    url = client.get_auth_url(AUTH_URI, REDIRECT_URI)
    return redirect(url)

@app.route('/callback/')
def callback():
    # получаем токен доступа
    params = {'code': request.args['code'], 'redirect_uri': REDIRECT_URI}
    resp = client.get_access_token(ACCESS_TOKEN_URL, liboauth2.GRANT_TYPE_AUTH_CODE, params)
    def urldecode(values):
        ret = {}
        for s in values.split('&'):
            if s.find('=') > -1:
                k, v = map(urllib.unquote, s.split('='))
                ret[k] = v
                #ret.setdefault(k, []).append(v)
        return ret
    data = urldecode(resp['result'])
    # устанавливаем токен доступа и запрашиваем информацию о пользователе
    client.set_access_token(data['access_token'])
    params = {
        'oauth_consumer_key': CLIENT_ID,
        'openid': data['openid'],
        'clientip': request.remote_addr,
        'oauth_version': '2.a',
    }
    resp = client.fetch('http://open.t.qq.com/api/user/info', params)
    return str(resp['result'])

if __name__ == '__main__':
    app.run(host='localhost', port=5000)

Комментарии ( 0 )

Вы можете оставить комментарий после Вход в систему

Введение

Клиент OAuth2 на Python. Развернуть Свернуть
Отмена

Обновления

Пока нет обновлений

Участники

все

Недавние действия

Загрузить больше
Больше нет результатов для загрузки
1
https://api.gitlife.ru/oschina-mirror/zakzou-liboauth2.git
git@api.gitlife.ru:oschina-mirror/zakzou-liboauth2.git
oschina-mirror
zakzou-liboauth2
zakzou-liboauth2
master