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
muslpy 3.10–3.95 runs
installs and imports cleanly · install 0.0s · import 0.686s · 27.2MB
glibcpy 3.10–3.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)
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+).
fixUse 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.
fixAdd await: identity = await check_authorized(request)
aiohttp_security.exceptions.AuthorizationFailed: Authorization failed
User does not have required permission or is not authorized.
fixCheck 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.
fixEnsure 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