Registry / auth-security / aiohttp-security

aiohttp-security

JSON →
library0.5.0pypypi✓ verified 84d ago

A library for security-related functionality in aiohttp.web applications, including session-based and JWT identity policies, authorization, and permission checks. Current version is 0.5.0, released in February 2023. Release cadence is low, with the last release over two years ago.

pip install aiohttp-security
INSTALL
IMPORT
SIG · AIOHTTP-SECURITY
A
aiohttp-security
auth-securitypythonv0.5.0
Install
4.0s avg
Import
652ms
Disk
27MB
Pass rate
10/ 10
Env Coverage10 / 10
glibc
3.93.13
musl
3.93.13
Install & Compatibility
Where this runs
tested against v0.5.0 · pip install
no network on importno background threads
Install × environment matrix
Each cell = how many times install + import succeeded across repeated harness runs. Partial = flaky.
glibc = Debian/Ubuntu slim · musl = Alpine Linux
musl
py 3.103.95 runs
installs and imports cleanly · install 0.0s · import 0.686s · 27.2MB
glibc
py 3.103.95 runs
installs and imports cleanly · install 4.0s · import 0.618s · 29MB
27MB installed
● package 27MB
Code
Verified usage

Verified import paths — ran on the pinned version, not inferred.

authorized_userid
from aiohttp_security import authorized_userid
from aiohttp_security.api import authorized_userid
authorized_userid is exported at package level, not from api submodule
check_authorized
from aiohttp_security import check_authorized
from aiohttp_security.decorators import check_authorized
check_authorized is exported at package level; decorators module exists but old alias

Initialize aiohttp-security with session identity policy and protect a route with check_authorized.

import aiohttp from aiohttp import web from aiohttp_security import setup, SimpleIdentityPolicy, check_authorized, check_permission from aiohttp_security import SessionIdentityPolicy import aiohttp_session from aiohttp_session import SimpleCookieStorage async def handler(request): identity = await check_authorized(request) return web.json_response({"user": identity}) app = web.Application() aiohttp_session.setup(app, SimpleCookieStorage()) # Example: using SessionIdentityPolicy policy = SessionIdentityPolicy() setup(app, policy) app.router.add_get('/protected', handler) web.run_app(app)
Debug
Known issues
deprecatedThe decorators login_required and has_permission are deprecated since 0.3.0. Use check_authorized and check_permission functions instead.
fix
Replace @login_required with await check_authorized(request) inside handler.
affects: >=0.3.0
gotchaIn version 0.5.0, JWTIdentityPolicy identity now returns str (not dict). Previously it returned a dict, which may break code expecting dict.
fix
Update code to handle identity as a string (e.g., username). Use JWTIdentityPolicy with custom payload processing if dict needed.
affects: 0.5.0
gotchaaiohttp-session is optional but required for SessionIdentityPolicy. Missing it causes ImportError.
fix
Install aiohttp-session: pip install aiohttp-session
affects: >=0.1.2
breakingSince 0.5.0, aiohttp.web.AppKey is used for internal storage. Older versions used plain strings; code directly accessing app internals may break.
fix
Use public API functions; do not access app['aiohttp_security'] directly.
affects: 0.5.0
Errors
Common errors & fixes
ImportError: cannot import name 'login_required' from 'aiohttp_security'
login_required decorator was deprecated and removed in a later version (0.3.0+).
fix
Use check_authorized function: from aiohttp_security import check_authorized
TypeError: object str can't be used in 'await' expression
Forgot to await check_authorized or other async function.
fix
Add await: identity = await check_authorized(request)
aiohttp_security.exceptions.AuthorizationFailed: Authorization failed
User does not have required permission or is not authorized.
fix
Check that user is logged in and has the required permission when using check_permission.
AttributeError: 'Application' object has no attribute 'on_response_prepare'
Using incompatible version of aiohttp (maybe <3.0) or missing setup steps.
fix
Ensure you are using aiohttp >=3.2 and call aiohttp_session.setup before aiohttp_security.setup.
Upgrade
Version history
0.5.0latest on PyPI · released Nov 18, 2023
Audit
Dependencies
aiohttprequiredCore dependency for aiohttp.web
aiohttp-sessionoptionalRequired for session-based identity policy, optional for JWT
Agent activity
47 hits · last 30 days
node
40
OpenAI (training)
2
Resources
aiohttp-security — pip install aiohttp-security · libregistry