Skip to main content

python-basicauth

Build Status

A dead simple HTTP basic auth encoder and decoder. Why? Because HTTP should be drop dead easy... That's why.

Install

To install python-basicauth, simply run pip install basicauth and you'll get the latest version installed automatically.

Usage

To generate an encoded basic auth string:

>>> from basicauth import encode
>>> username, password = 'rdegges', 'omghax!!!'
>>> encoded_str = encode(username, password)
>>> print encoded_str
'Basic cmRlZ2dlczpvbWdoYXglMjElMjElMjE='

To decode an encoded basic auth string:

>>> from basicauth import decode
>>> encoded_str = 'Basic cmRlZ2dlczpvbWdoYXglMjElMjElMjE='  # From the example above.
>>> username, password = decode(encoded_str)
>>> print (username, password)
('rdegges', 'omghax!!!')

We can also decode the encoded string directly:

>>> from basicauth import decode
>>> encoded_str = 'cmRlZ2dlczpvbWdoYXglMjElMjElMjE='  # From the example above.
>>> username, password = decode(encoded_str)
>>> print (username, password)
('rdegges', 'omghax!!!')

And if there are errors:

>>> from basicauth import decode, DecodeError
>>> encoded_str = 'lol omg cmRlZ2dlczpvbWdoYXglMjElMjElMjE='  # Invalid encoded string.
>>> username, password = decode(encoded_str)
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "basicauth/__init__.py", line 49, in decode
    raise DecodeError
basicauth.DecodeError

NOTE: The HTTP Basic Authentication spec does NOT allow you to include any colon characters (:) in the username field. Colons are allowed in the password field -- but that's it.

Tests

Want to run the tests? No problem:

$ git clone https://github.com/rdegges/python-basicauth.git
$ cd python-basicauth
$ pip install -e .
...
$ python -m unittest
..............
----------------------------------------------------------------------
Ran 14 tests in 0.103s

OK

Release files for basicauth 1.0.0

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

Source distribution (sdist)

Source distribution for basicauth 1.0.0
File Size Uploaded
basicauth-1.0.0.tar.gz 3.6 kB Details

Built distribution (wheel)

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

Total release size: 7.3 kB

Release files / basicauth-1.0.0.tar.gz

Download URL basicauth-1.0.0.tar.gz
Size 3.6 kB
Tags Source
SHA-256 checksum
How to use checksums
e4739db0a8bd146702c3501afda172e66b51ebafc15ee65adbecb86b9ee0d51b
BLAKE2b-256 checksum
How to use checksums
3e38561378a529cc63303bb1e02c44801dda277b634169cbb1b86c0a68431e5f
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/4.0.1 CPython/3.11.1

Release files / basicauth-1.0.0-py3-none-any.whl

Download URL basicauth-1.0.0-py3-none-any.whl
Size 3.8 kB
Tags Python 3
SHA-256 checksum
How to use checksums
5e6eb3deb883b1fce552e25b6a97083e1b5ab28771b3d7c2b76c5b6ae1cc4da7
BLAKE2b-256 checksum
How to use checksums
52b55bb9477a6a0b4fe88d2849858e150f07481200d5b4b4c789a39bd567e5b4
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/4.0.1 CPython/3.11.1

Release history Release notifications | RSS feed

This release

1.0.0 This release

2 release files

0.4.1

1 release file

0.4.0

1 release file

0.3

1 release file

0.2

1 release file

0.1

1 release file

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