Помогите разобраться с проверкой на логин

Сейчас я делаю проверку пользователя на логин, чтобы нельзя было отправлять запросы по wss незалогиненым пользователям (бэкенд для приложения на unity). Пример брал отсюда: https://github.com/Crandel/aiohttp. Есть отличие: у меня во views.py используются функции без классов. Пример:

#Вход пользователя
async def websocket_login(request): 
    ws = web.WebSocketResponse() 
    await ws.prepare(request) 
    session = await get_session(request)
    async for msg in ws:
        if not session.get('user'):
            data = json.loads(msg.data)
            response = UserServices().check(data) #Проверка данных пользователя      
            set_session(session, str(response['data']['id']), request)
            await ws.send_json(response) #Отправка ответа

Как видите, я уже пытался добавлять id пользователя в сессию, но проблема в том, что сессия строится на основе запроса, а запросы везде разные:

app.router.add_routes([
    web.get('/api/registration/', websocket_registration),
    web.get('/api/login/', websocket_login),
    web.get('/api/item/', websocket_item),
    web.get('/api/echo/', websocket_echo),
    web.get('/api/message/', websocket_message),
    web.get('/api/state/', websocket_state),
    web.get('/api/calendar/', websocket_calendar),
    web.get('/api/event/', websocket_event),
    web.get('/api/cafe/notify/', websocket_cafe_notify),
    web.get('/api/user/', websocket_user),
])

Я уже долго с этим мучаюсь, поэтому решил написать сюда (пишу первый раз, надеюсь проблему описал понятно). Заранее спасибо <З


Ответы (0 шт):