Как я могу запретить вошедшему в систему пользователю снова входить в систему, используя другой браузер / вкладку? - PullRequest
0 голосов
/ 14 марта 2019

Я использую responsejs с nodejs и redux для аутентификации и отслеживания аутентификации пользователя или нет (для маршрутов).Я использую aws cognito для аутентификации пользователя.

Что делает приложение: оно в основном берет файл от пользователя и загружает его в корзину s3.

Что я хочу сделать: я хочу ограничитьпользователь открывает 2-ю вкладку (например, в Chrome) и снова входит в систему.В настоящее время у меня нет кнопки выхода из системы, но если они обновят свою текущую вкладку, они выйдут из системы и должны будут войти снова - причина этого в том, что нам не нужно сохранять вход в систему.

В дополнение к этому, в идеале мы хотели бы запретить пользователю открывать, скажем, другой браузер и входить в систему.

Есть ли способ ограничить это?

1 Ответ

0 голосов
/ 14 марта 2019

Если вам нужен только 1 сеанс для одного конкретного пользователя.

  • при входе в систему необходимо сгенерировать токен JWT или какой-либо ключ доступа, который используется во всех вызовах API (операция AWS и т. Д.)
  • при втором входе в систему необходимо аннулировать предыдущий токен JWT / токен доступа
  • таким образом, даже если пользователь войдет во вторую вкладку, первая вкладка будет отключена, так как на первой вкладке используется старый токен доступа (который теперь недействителен), а на второй вкладке установлен последний токен доступа.

Другой подход:

  • вам нужна система присутствия. Когда вы можете определить, какой пользователь не в сети, а кто - в сети.
  • на сервере вы запрещаете вход в систему пользователю, который уже в сети
  • пользователь отключается, закрывая вкладку или отключаясь от Интернета
  • вам все еще нужны токены JWT или другие токены доступа, которые вы предоставляете при каждом входе в систему, и аннулируйте старые токены
  • вы можете создать систему присутствия с помощью Firebase от Google. Может быть, другие системы.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...