Skip to content

Eyepea/python-basicauth

This branch is 31 commits behind rdegges/python-basicauth:main.

Folders and files

NameName
Last commit message
Last commit date

Latest commit

2762170 · Feb 6, 2017

History

30 Commits
Apr 30, 2012
Jan 30, 2017
May 1, 2012
Apr 24, 2014
Apr 30, 2012
Feb 6, 2017
May 1, 2012
Jan 30, 2017
Feb 6, 2017
Jan 30, 2017

Repository files navigation

python-basicauth

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

HTTP Basic Auth?!

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 hash 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 hash.
>>> 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 doesn NOT allow you to include any colon characters (:) in the username field. Colons are allowed in the password field -- but that's it.

Tests

Build Status

Want to run the tests? No problem:

$ git clone git://github.com/rdegges/python-basicauth.git
$ cd python-basicauth
$ python setup.py develop
...
$ pip install -r requirements.txt  # Install test dependencies.
$ nosetests
.............
----------------------------------------------------------------------
Ran 13 tests in 0.166s

OK

About

An incredibly simple HTTP basic auth implementation.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Python 100.0%