возникла проблема с взаимодействием django + tornado, а именно проект написан на django(api (django-rest-framework)), фронтенд (react), аутентификация пользователей через jwt токены, и вот нужно прикрутить личные сообщения, чат (real-time). Изначально хотел это вынести на node.js, но погуглив наткнулся на неблокирующий сервер и фреймворк (tornado) да и на python всё же, выбор пал на него, но вот теперь проблема как мне аутентифицировать пользователя в чате(tornado), если у меня нету сессий, а есть только токены, что бы возможно было реализовать обмен сообщения между пользователями?
Делаю пока так:
1) подключил библиотеку для работы с jwt токенами к tornado
2) при установке сокетного соединения в параметре передавал token пользователя
3) на бэке расшифровывал этот токен используя тот же приватный ключ, который использовался и для шифрования, и получал id пользователя
4) используя Psycopg2 драйвер напрямую обращался к бд для записи и чтения данных с таблиц
Может кто-то посоветует что-то лучше этого решения?
Есть ещё вариант использования Redis только как pub/sub. Вся основная работа будет лежать на Django, запись сообщений, уведомлений всё будет происходить в Django, но так же Django будет слать publish уведомления в каналы redis, на которые будет подписан tornado и через сокеты уже будет уведомлять клиентов. Но вот здесь только однонаправленная связь получается - это Django -> tornado. Но думаю мне должно этого хватить, но есть подозрения, что может многое поменяться и как бы себя уберечь от грядущих проблем, хотя бы чуть-чуть, может есть какие-то проверенные методы реализации данных вещей?
sim3x
благодарю за советы, попробую ещё поискать в интернете как люди делают, а то чувствую мой вариант, который в вопросе не очень хороший, вот тот, который в ответе на ваш ответ думаю уже лучше, но чувствую, что есть ещё получше )