· 5 years ago · Oct 12, 2020, 02:22 PM
1# -*- coding: utf8 -*-
2
3import asyncio
4import time
5import base64
6import requests
7from cryptography import fernet
8from time import sleep
9from aiohttp import web
10from aiohttp_session import setup, get_session, session_middleware
11from aiohttp_session.cookie_storage import EncryptedCookieStorage
12
13async def handler(request):
14 session = await get_session(request)
15 key = session['key'] if 'key' in session else None
16 text = format(key)
17 return web.Response(text=text)
18
19async def posthandler(request):
20 session = await get_session(request)
21 session['key'] = request.text()
22 return web.Response('')
23
24async def make_app():
25 app = web.Application()
26 fernet_key = fernet.Fernet.generate_key()
27 secret_key = base64.urlsafe_b64decode(fernet_key)
28 setup(app, EncryptedCookieStorage(secret_key))
29 app.add_routes([web.get('/', handler)])
30 app.add_routes([web.post('/', posthandler)])
31 return app
32
33if __name__ == '__main__':
34 web.run_app(make_app())