HTTP basic authentication middleware for aiohttp 3.0+
Project description
aiohttp-basicauth
HTTP basic authentication middleware for aiohttp 3.0+. Inspired by Flask-BasicAuth.
Requirements
- Python >= 3.5.3
- aiohttp >= 3.0
Installation
pip install aiohttp_basicauth
Simple usage
from aiohttp import web from aiohttp_basicauth import BasicAuthMiddleware auth = BasicAuthMiddleware(username='user', password='password') app = web.Application(middlewares=[auth]) web.run_app(app, host='127.0.0.1', port=80)
Protect specific view(s)
from aiohttp import web from aiohttp_basicauth import BasicAuthMiddleware auth = BasicAuthMiddleware(username='user', password='password', force=False) async def public_view(request): return web.Response(text='Public view') @auth.required async def secret_view(request): return web.Response(text='Secret view') app = web.Application(middlewares=[auth]) app.router.add_route('GET', '/public', public_view) app.router.add_route('GET', '/secret', secret_view) web.run_app(app, host='127.0.0.1', port=80)
Advanced usage
You can override check_credentials
method to implement more complex user verification logic:
from aiohttp import web from aiohttp_basicauth import BasicAuthMiddleware class CustomBasicAuth(BasicAuthMiddleware): async def check_credentials(self, username, password, request): # here, for example, you can search user in the database by passed `username` and `password`, etc. return username == 'user' and password == 'password' auth = CustomBasicAuth() app = web.Application(middlewares=[auth]) web.run_app(app, host='127.0.0.1', port=80)
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
Built Distribution
Close
Hashes for aiohttp_basicauth-1.0.0-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 006b82d288ffb7139bfab0f277aeddb54f12baa2b224a21f09a85ea577e4837b |
|
MD5 | ed67b3f5920d16d97b6f6e1d5c3ddbbe |
|
BLAKE2-256 | a8e321828d13f4eafcefcd2e3d4b651520a35bb66e869b5d062efc458601ae51 |