An incredibly simple HTTP basic auth implementation for Aiohttp.
Project description
# aiohttp-basicauth-middleware
[![Build Status](https://travis-ci.org/bugov/aiohttp-basicauth-middleware.svg?branch=master)](https://travis-ci.org/bugov/aiohttp-basicauth-middleware)
Aiohttp middleware for simple http basic
auth protection for some urls.
Works with Python >= 3.5.
Works with UTF-8 🖖
## Installation
pip install aiohttp-basicauth-middleware
## Usage
```python
app = web.Application(loop=loop)
app.router.add_route('GET', '/hello', handler_a)
app.router.add_route('GET', '/admin/hello', handler_b)
app.middlewares.append(
basic_auth_middleware(
('/admin',),
{'user': 'password'},
)
)
```
`basic_auth_middleware` has 3 params:
1. list of protected urls. For example `['/admin']` will match
with `/admin/user`, but will not match with `/user/admin`.
2. auth dict – a dict with pairs: login-password.
3. strategy (optional) for password comparision. For example you can
store hashed password in `auth_dict`. See `aiohttp_basicauth_middleware.strategy.BaseStrategy` and
`example.strategy` for more information.
Example with md5 password hashing:
```python
app = web.Application(loop=loop)
app.router.add_route('GET', '/hello', handler_a)
app.router.add_route('GET', '/admin/hello', handler_b)
app.middlewares.append(
basic_auth_middleware(
('/admin',),
{'user': '5f4dcc3b5aa765d61d8327deb882cf99'},
lambda x: hashlib.md5(bytes(x, encoding='utf-8')).hexdigest(),
)
)
```
`/admin/...` will be accessed by the same login+password pair ('user', 'password').
[![Build Status](https://travis-ci.org/bugov/aiohttp-basicauth-middleware.svg?branch=master)](https://travis-ci.org/bugov/aiohttp-basicauth-middleware)
Aiohttp middleware for simple http basic
auth protection for some urls.
Works with Python >= 3.5.
Works with UTF-8 🖖
## Installation
pip install aiohttp-basicauth-middleware
## Usage
```python
app = web.Application(loop=loop)
app.router.add_route('GET', '/hello', handler_a)
app.router.add_route('GET', '/admin/hello', handler_b)
app.middlewares.append(
basic_auth_middleware(
('/admin',),
{'user': 'password'},
)
)
```
`basic_auth_middleware` has 3 params:
1. list of protected urls. For example `['/admin']` will match
with `/admin/user`, but will not match with `/user/admin`.
2. auth dict – a dict with pairs: login-password.
3. strategy (optional) for password comparision. For example you can
store hashed password in `auth_dict`. See `aiohttp_basicauth_middleware.strategy.BaseStrategy` and
`example.strategy` for more information.
Example with md5 password hashing:
```python
app = web.Application(loop=loop)
app.router.add_route('GET', '/hello', handler_a)
app.router.add_route('GET', '/admin/hello', handler_b)
app.middlewares.append(
basic_auth_middleware(
('/admin',),
{'user': '5f4dcc3b5aa765d61d8327deb882cf99'},
lambda x: hashlib.md5(bytes(x, encoding='utf-8')).hexdigest(),
)
)
```
`/admin/...` will be accessed by the same login+password pair ('user', 'password').
Project details
Release history Release notifications | RSS feed
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
Close
Hashes for aiohttp_basicauth_middleware-1.1.0-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 6836793b84e9f43e33079d4c2d21d45a741e19894749e22138e50ffc89cffdc1 |
|
MD5 | ebf962c2a71b8fb87ea6c3439d6c3811 |
|
BLAKE2b-256 | b4cacc0eccc35d649eb06a46bbb4b45e98b7a8b709fffd41c51768e02758ebc6 |