一个非常简单的用于aiohttp的http基本auth实现。
aiohttp-basicauth-middleware的Python项目详细描述
用于简单http-basic的Aiohttp中间件 对某些URL进行身份验证保护。
适用于Python>;=3.5
与UTF-8?配合使用
安装
pip install aiohttp-basicauth-middleware
用法
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'},))
基本认证中间件有3个参数:
- 受保护URL的列表。例如,['/admin']将匹配 与/admin/user匹配,但与/user/admin不匹配。
- auth dict–带对的dict:登录密码
- 密码比较策略(可选)。例如,你可以 将散列密码存储在auth dict中请参见aiohttp_basicauth_middleware.strategy.basestrategy 示例.strategy了解更多信息
MD5密码散列示例:
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'},lambdax:hashlib.md5(bytes(x,encoding='utf-8')).hexdigest(),))
/admin/..将由同一个登录名+密码对('user','password')访问