An incredibly simple HTTP basic auth implementation.
Project description
# 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?!](https://github.com/rdegges/python-basicauth/raw/master/http_basic_auth.jpg)
## 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:
``` python
>>> 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:
``` python
>>> 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:
``` python
>>> 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:
``` python
>>> 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](http://www.ietf.org/rfc/rfc2617.txt)
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](https://secure.travis-ci.org/rdegges/python-basicauth.png?branch=master)](http://travis-ci.org/rdegges/python-basicauth)
Want to run the tests? No problem:
``` bash
$ 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
```
A dead simple HTTP basic auth encoder and decoder. Why? Because HTTP should be
drop dead easy. That's why.
![HTTP Basic Auth?!](https://github.com/rdegges/python-basicauth/raw/master/http_basic_auth.jpg)
## 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:
``` python
>>> 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:
``` python
>>> 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:
``` python
>>> 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:
``` python
>>> 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](http://www.ietf.org/rfc/rfc2617.txt)
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](https://secure.travis-ci.org/rdegges/python-basicauth.png?branch=master)](http://travis-ci.org/rdegges/python-basicauth)
Want to run the tests? No problem:
``` bash
$ 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
```
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distributions
No source distribution files available for this release.See tutorial on generating distribution archives.
Built Distribution
File details
Details for the file basicauth-0.4.0-py2.py3-none-any.whl
.
File metadata
- Download URL: basicauth-0.4.0-py2.py3-none-any.whl
- Upload date:
- Size: 4.5 kB
- Tags: Python 2, Python 3
- Uploaded using Trusted Publishing? No
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | c02b5e542c1f5786f2cb410c2c63484a842a3195bc08c66c72faef01ab29ea94 |
|
MD5 | 129ef4530b2b64f0f43fd70631ce97ab |
|
BLAKE2b-256 | c3afde5e24b52d13733ef79aee4700541153bb8e5ff8c1b60a4029040880ff34 |