Skip to main content

An incredibly simple HTTP basic auth implementation.

Project description

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

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

basicauth-1.0.0.tar.gz (3.6 kB view details)

Uploaded Source

Built Distribution

basicauth-1.0.0-py3-none-any.whl (3.8 kB view details)

Uploaded Python 3

File details

Details for the file basicauth-1.0.0.tar.gz.

File metadata

  • Download URL: basicauth-1.0.0.tar.gz
  • Upload date:
  • Size: 3.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.1 CPython/3.11.1

File hashes

Hashes for basicauth-1.0.0.tar.gz
Algorithm Hash digest
SHA256 e4739db0a8bd146702c3501afda172e66b51ebafc15ee65adbecb86b9ee0d51b
MD5 4a3ff156c8fc4d8abe413520cc4f0c84
BLAKE2b-256 3e38561378a529cc63303bb1e02c44801dda277b634169cbb1b86c0a68431e5f

See more details on using hashes here.

File details

Details for the file basicauth-1.0.0-py3-none-any.whl.

File metadata

  • Download URL: basicauth-1.0.0-py3-none-any.whl
  • Upload date:
  • Size: 3.8 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.1 CPython/3.11.1

File hashes

Hashes for basicauth-1.0.0-py3-none-any.whl
Algorithm Hash digest
SHA256 5e6eb3deb883b1fce552e25b6a97083e1b5ab28771b3d7c2b76c5b6ae1cc4da7
MD5 88f12023baa7eeed3ac2868d5c65f3ae
BLAKE2b-256 52b55bb9477a6a0b4fe88d2849858e150f07481200d5b4b4c789a39bd567e5b4

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