· 5 years ago · Oct 12, 2020, 01:48 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
13def user_login(request):
14 redirect_to = request.POST.get(REDIRECT_FIELD_NAME, request.GET.get(REDIRECT_FIELD_NAME, ''))
15 login_form = AuthenticationForm(request, data=request.POST)
16 if login_form.is_valid():
17 if not is_safe_url(url=REDIRECT_FIELD_NAME, host=request.get_host()):
18 redirect_to = settings.LOGIN_REDIRECT_URL
19 auth_login(request, login_form.get_user())
20 return redirect(settings.LOGIN_REDIRECT_URL if redirect_to == '' else redirect_to)
21 else:
22 return render(request, 'index.html', {'login_form': login_form, 'display': 'block', 'active': 'login'})
23
24async def handler(request):
25 session = await get_session(request)
26 key = session['key'] if 'key' in session else None
27 text = format(key)
28 return web.Response(text=text)
29
30async def posthandler(request):
31 session = await get_session(request)
32 session['key'] = request.text()
33 return web.Response('')
34
35q = requests.post("http://localhost:8080")
36print(q.text)
37key = q.text
38r = requests.get("http://localhost:8080", params = key)
39print(r.text)
40
41async def make_app():
42 app = web.Application()
43 fernet_key = fernet.Fernet.generate_key()
44 secret_key = base64.urlsafe_b64decode(fernet_key)
45 setup(app, EncryptedCookieStorage(secret_key))
46 app.add_routes([web.get('/', handler)])
47 app.add_routes([web.post('/', posthandler)])
48 return app
49
50if __name__ == '__main__':
51 web.run_app(make_app())