Skip to main content

Python library to manage OAuth access tokens

Project description

Build Status Code Coverage PyPI Downloads Latest PyPI version License

A Python library that keeps OAuth 2.0 service access tokens in memory for your usage.

Installation

$ sudo pip3 install --upgrade stups-tokens

Usage

import requests
import time
import tokens

# will use OAUTH2_ACCESS_TOKEN_URL environment variable by default
# will try to read application credentials from CREDENTIALS_DIR
tokens.configure(url='https://example.com/access_tokens')
tokens.manage('example', ['read', 'write'])
tokens.start()

tok = tokens.get('example')

requests.get('https://example.org/', headers={'Authorization': 'Bearer {}'.format(tok)})

time.sleep(3600) # make the token expire

tok = tokens.get('example') # will refresh the expired token
requests.get('https://example.org/', headers={'Authorization': 'Bearer {}'.format(tok)})

This library also allows reading tokens directly from a file. The token needs to be in a file name ${CREDENTIALS_DIR}/${TOKEN_NAME}-secret:

import tokens

# the environment variable CREDENTIALS_DIR must be set correctly
tokens.configure(from_file_only=True)
tokens.manage('full-access')
tok = tokens.get('full-access')

requests.get('https://example.org/', headers={'Authorization': 'Bearer {}'.format(tok)})

Local testing

The “tokens” library allows injecting fixed OAuth2 access tokens via the OAUTH2_ACCESS_TOKENS environment variable. This allows testing applications using the library locally with personal OAuth2 tokens (e.g. generated by “zign”):

$ MY_TOKEN=$(zign token -n mytok)
$ export OAUTH2_ACCESS_TOKENS=mytok=$MY_TOKEN
$ ./myapp.py # start my local Python app using the tokens library

Releasing

Uploading a new version to PyPI:

$ ./release.sh <NEW-VERSION>

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

stups-tokens-1.1.19.tar.gz (4.5 kB view details)

Uploaded Source

Built Distribution

stups_tokens-1.1.19-py3-none-any.whl (6.1 kB view details)

Uploaded Python 3

File details

Details for the file stups-tokens-1.1.19.tar.gz.

File metadata

File hashes

Hashes for stups-tokens-1.1.19.tar.gz
Algorithm Hash digest
SHA256 7830ad83ccbfd52a9734608ffcefcca917137ce9480cc91a4fbd321a4aca3160
MD5 d8223ec9d8776d54ed4016fcf448d350
BLAKE2b-256 80bbd9b6991f59b7542ed6de9837e9160af066f6f47fb9515a412f0311315d2f

See more details on using hashes here.

File details

Details for the file stups_tokens-1.1.19-py3-none-any.whl.

File metadata

File hashes

Hashes for stups_tokens-1.1.19-py3-none-any.whl
Algorithm Hash digest
SHA256 317f4386763bac9dd5c0a4c8b0f9f0238dc3fa81de3c6fd1971b6b01662b5750
MD5 2fd3a4bfa36d6251ec0bf5ad368242b0
BLAKE2b-256 70dd4fd77cb049b7f1e7da1abc857a8638e07dc67224acf9ebde1f02e33167ae

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page