Ограничить количество сеансов (например, Netflix)

#node.js #authentication #concurrency #jwt #netflix

Вопрос:

Я хочу ограничить количество сеансов для пользователя следующим образом:

  • Пользователь может одновременно подключаться только к 4 различным устройствам.
  • Для входа на 5-е устройство пользователю необходимо будет выйти из системы с одного из подключенных в данный момент устройств.

Я искал решение SAAS и не смог его найти. Искал библиотеки NodeJS / паспортов и не смог найти.

Затем у меня появилась следующая идея:

  1. Уникальным ключом БД для пользователя будет JWT Токен Номер телефона.
  2. Пользователь подключится с помощью OTP (Одноразовый пароль) со своим номером телефона.
  3. Я сохраню JWT Жетон и номер телефона.
  4. Если 5-й пользователь захочет войти в систему, я проверю, есть ли уже 5.
  5. Я удалю JWT сеанс при нажатии кнопки выхода из системы.

Итак, у меня есть 2 вопроса в этом случае:

  1. Знакомы ли вы с возможным, известным решением для моей ситуации (SAAS / Библиотека)?
  2. Является ли мое решение законным? Я вижу только 1 проблему — если пользователь не нажимает на выход, а скорее удаляет данные приложения / браузера.

Большое спасибо!