Requests-OAuthlib:面向人类的 OAuth

Requests-OAuthlib 使用 Python RequestsOAuthlib 库,为构建 OAuth1 和 OAuth2 客户端提供一个易于使用的 Python 界面。

概述

一个连接到 Github OAuth2 API 的简单 Flask 应用程序看起来大约像这样

from requests_oauthlib import OAuth2Session

from flask import Flask, request, redirect, session
from flask.json import jsonify

# This information is obtained upon registration of a new GitHub
client_id = "<your client key>"
client_secret = "<your client secret>"
authorization_base_url = 'https://github.com/login/oauth/authorize'
token_url = 'https://github.com/login/oauth/access_token'
secret_key = "<secret_key for use flask session>"

app = Flask(__name__)
app.config['SECRET_KEY'] = secret_key

@app.route("/login")
def login():
    github = OAuth2Session(client_id)
    authorization_url, state = github.authorization_url(authorization_base_url)

    # State is used to prevent CSRF, keep this for later.
    session['oauth_state'] = state
    return redirect(authorization_url)

@app.route("/callback")
def callback():
    github = OAuth2Session(client_id, state=session['oauth_state'])
    token = github.fetch_token(token_url, client_secret=client_secret,
                               authorization_response=request.url)

    return jsonify(github.get('https://api.github.com/user').json())

上面是一个截断的示例。完整的示例可在此处获得:OAuth 2 Web 应用程序流的 Web 应用程序示例

安装

Requests-OAuthlib 可以使用 pip 安装

$ pip install requests-oauthlib

入门:

索引和表格