Skip to main content

auth-python

Build Status

A Python package with strategies for reading OpenStax authentication cookies.

Usage

pip install oxauth

from oxauth import Strategy2

strategy = Strategy2(
    signature_public_key="-----BEGIN PUBLIC KEY-----\n...\n-----END PUBLIC KEY-----"
    signature_algorithm="RS256",
    encryption_private_key="encryption_private_key_here",
    encryption_algorithm="A256GCM",
    encryption_method="dir"
)

payload = strategy.decrypt(cookie) # cookie is the body of the auth cookie

payload.user_uuid # this is the user's UUID

Note that the part that is hidden above is the signature private key, without which others cannot forge a cookie value.

If the cookie is bad or the keys don't work on it, the payload will have value None.

Development

All development is done inside a docker container. From your host running Docker, in this directory run:

$> docker-compose up -d
%> ./docker/bash

This will drop you into the running container

Run tests

From within the container, you can run tests with:

$ /code> python -m pytest

For debugging, you can use ipdb, e.g.

import ipdb; ipdb.set_trace()

When running tests with the debugger make sure to use the -s option to prevent pytest from capturing output.

$> python -m pytest -s tests -k 'test_decrypts'

Note that pytest is also on the PATH so you can call it directly.

Distributing

From within the container, build the distributions:

$> python setup.py sdist bdist_wheel

To upload:

$> python -m twine upload dist/*

Note on names

We started naming the package openstax_auth but there seems to be weirdness in how different parts of the Python tooling replace underscores with hyphens. We want the package name to be simple and not confusing on import so we shortened to oxauth.

Release files for oxauth 0.0.2

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for oxauth 0.0.2
File Size Uploaded
oxauth-0.0.2.tar.gz 2.9 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for oxauth 0.0.2
File Interpreter ABI Platform
oxauth-0.0.2-py3-none-any.whl Python 3 none any Details

Total release size: 6.9 kB

Release files / oxauth-0.0.2.tar.gz

Download URL oxauth-0.0.2.tar.gz
Size 2.9 kB
Tags Source
SHA-256 checksum
How to use checksums
1729026c22257c2ff0d0b3d7f261b9ccb9e88273986e8a76c45a8b971649fcd3
BLAKE2b-256 checksum
How to use checksums
3b4d7726c4b28bba9528a10a0b483c28695879dc84d8fcf2a81efb347dc424ad
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/3.1.1 pkginfo/1.5.0.1 requests/2.23.0 setuptools/45.2.0 requests-toolbelt/0.9.1 tqdm/4.43.0 CPython/3.7.6

Release files / oxauth-0.0.2-py3-none-any.whl

Download URL oxauth-0.0.2-py3-none-any.whl
Size 4.0 kB
Tags Python 3
SHA-256 checksum
How to use checksums
eee23bc761f70d17fd7dffdb48334252e1ceca29dbda928b2151ae574016adaa
BLAKE2b-256 checksum
How to use checksums
0401a170abe02f3dac54fb551cce85c246bd890cedd24d259429c0047c14661b
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/3.1.1 pkginfo/1.5.0.1 requests/2.23.0 setuptools/45.2.0 requests-toolbelt/0.9.1 tqdm/4.43.0 CPython/3.7.6

Release history Release notifications | RSS feed

This release

0.0.2 This release

2 release files

0.0.1

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page