http-basic-auth

HTTP Basic Auth implementation


Keywords
security, basic, auth, http, basic-authentication, python, python3, utf-8
License
BSD-3-Clause
Install
pip install http-basic-auth==1.2.0

Documentation

http-basic-auth

Build Status

Yep, it's one more HTTP Basic Auth python lib. The second. And I tried to use the first, but it had a bug (which I fixed) and... completely wrong realisation of non-latin encoding/decoding.

Install

pip3 install http-basic-auth

♥️ RFC

It supports only RFC-2617 (RFC-7617 planning).

If you find some mistake – please write to issue list 🐨.

♥️ Non-latin symbols

http-basic-auth ♥ utf-8

→ curl --user name:пароль https://httpbin.org/headers
{
  "headers": {
    "Accept": "*/*", 
    "Authorization": "Basic bmFtZTrQv9Cw0YDQvtC70Yw=", 
    "Connection": "close", 
    "Host": "httpbin.org", 
    "User-Agent": "curl/7.54.0"
  }
}

And even

→ curl --user 😁:пар:öль https://httpbin.org/headers
{
  "headers": {
    "Accept": "*/*", 
    "Authorization": "Basic 8J+YgTrQv9Cw0YA6w7bQu9GM", 
    "Connection": "close", 
    "Host": "httpbin.org", 
    "User-Agent": "curl/7.54.0"
  }
}

All works well

from http_basic_auth import generate_header, parse_header


assert "Basic 8J+YgTrQv9Cw0YA6w7bQu9GM" == generate_header('😁', 'пар:öль')
assert ('😁', 'пар:öль') == parse_header("Basic 8J+YgTrQv9Cw0YA6w7bQu9GM")

Provides functions

  • generate_header: (user, password) → "Basic <token>"
  • parse_header: "Basic <token>" → (user, password)
  • generate_token: (user, password) → "<token>"
  • parse_token: "<token>" → (user, password)