Задать вопрос
@Mashush

Как при поиске отфильтровать документы в mongoose?

Существует DeviceModel, которая содержит 3 поля - _id, userId, refreshToken

Таким образом для JWT я предоставляю возможность привязывать refreshToken к определенному устройству, пока пользователь не вышел. Но если пользователь очистит куки в браузере, то ему нужно будет заново залогиниться, а значит он создаст новый документ DeviceModel, при этом предыдущий не удалится.

Одна их функций администратора заключается в очистке DeviceModel, а именно в поиске и удалении тех документов, где уже умер refreshToken. Для проверки токена используется специальный метод validateToken (вернет либо payload токена, либо null)

Можно ли написать запрос к DeviceModel таким образом, чтобы отфильтровать данные? В качестве объекта фильтра в методе find указать как-то метод проверки токена
  • Вопрос задан
  • 91 просмотр
Подписаться 1 Простой Комментировать
Решения вопроса 1
kellas
@kellas
веб-разработчик
В любом случае придется перебирать документы в цикле и проверять токен.
Рекомендую вам во-первых разобраться, как работает функция validateToken, как она понимает что токен не протух. Может там только время имеет значение, это поможет понять, что ещё можно записывать в бд , чтобы потом по этому признаку фильтровать.

В коллекцию, дополнительно записывайте created_at. И по "крону" вытаскивайте токены старше суток например, перебирайте в цикле , валидируйте и удаляйте.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы
Rocket Смоленск
от 80 000 до 130 000 ₽
div. Ставрополь
от 40 000 до 90 000 ₽
Wanted. Санкт-Петербург
До 220 000 ₽
18 дек. 2024, в 11:03
5000 руб./за проект
18 дек. 2024, в 10:44
130000 руб./за проект
18 дек. 2024, в 10:02
7000 руб./за проект