Доброго времени суток.
Есть проект на django, отдельно от него есть проекты на angular и react. На django есть система вознаграждений и она хранит так же вознаграждения за проведённое время в приложениях на angular/react. Разумеется для учёта этого времени из фронта делаются запросы на api django, чтобы сохранить результат.
Исходные данные — используется JWT (т.е. мы в принципе знаем, когда токен был получен (время жизни токена 15мин), так же есть refresh token). Нужно хранить 5-тиминутные отрезки времени. Т.е. пользователь провёл 5 минут — шлём запрос. Запросы с большим временем тоже можно, но меньше времени жизни токена (15мин).
Теперь вопросы и проблемы:
1) допустим токен был получен в 21.00, но это был refresh token и пользователь на самом деле был на сайте с 20.57 и, соответственно, в 21.02 придёт запрос на запись 5 минут. Как это валидировать? дать возможность 5 минутного сдвига до времени получения токена?
2) и более важный — это же простой xhr запрос с фронта. В принципе пользователь может изучить ключи этиз запросов и из какого нибудь postman/insomnia или обычным curl слать запросы постоянно — как защититься от этого?
Используется django rest framework + rest framework simplejwt. Production инстансы на domain.tld — django, subdomain1.domain.tld — клиент 1 и второй так же. Т.е. по идее можно было бы ограничить по хосту запросы, чтобы урегулировать второй вопрос. Кто-то делал подобное?