aiohttp-security/demo/session_auth/main.py

28 lines
1019 B
Python

import asyncio
import os
import jinja2
from aiohttp import web
from aiohttp_jinja2 import setup as setup_jinja
from aiohttp_session import setup as setup_session
from aiohttp_session.redis_storage import RedisStorage
from aioredis import create_pool
from aiohttp_security import setup as setup_security, SessionIdentityPolicy
from .auth_policy import StubAuthorizationPolicy
from .handlers import index, login, login_post, logout
loop = asyncio.get_event_loop()
redis_pool = loop.run_until_complete(create_pool(('localhost', 6379)))
app = web.Application(loop=loop)
setup_session(app, RedisStorage(redis_pool))
setup_security(app,
SessionIdentityPolicy(),
StubAuthorizationPolicy())
setup_jinja(app, loader=jinja2.FileSystemLoader(os.path.join(os.path.dirname(__file__), 'templates')))
app.router.add_route('GET', '/', index)
app.router.add_route('GET', '/login', login)
app.router.add_route('POST', '/login', login_post)
app.router.add_route('GET', '/logout', logout)
web.run_app(app)