Requests-OAuthlib: OAuth for Humans

Requests-OAuthlib uses the Python Requests and OAuthlib libraries to provide an easy-to-use Python interface for building OAuth1 and OAuth2 clients.


A simple Flask application which connects to the Github OAuth2 API looks approximately like this:

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 = ''
token_url = ''
secret_key = "<secret_key for use flask session>"

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

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)

def callback():
    github = OAuth2Session(client_id, state=session['oauth_state'])
    token = github.fetch_token(token_url, client_secret=client_secret,

    return jsonify(github.get('').json())

The above is a truncated example. A full working example is available here: Web App Example of OAuth 2 web application flow


Requests-OAuthlib can be installed with pip:

$ pip install requests-oauthlib

Getting Started:

Indices and tables