Как предотвратить одновременный вход в веб-приложение с помощью экспресс-сессии - PullRequest
0 голосов
/ 31 мая 2018

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

Я храню сеансданные в веб-браузере cookie и хотят, чтобы бэкэнд имел информацию об активном пользователе, который в данный момент вошел в приложение, чтобы при успешном запросе входа в систему я мог узнать, есть ли у этого конкретного пользователя активный сеанс.Если это возможно, тогда я могу заблокировать логин для этого пользователя.

Один из способов сделать это - сохранить IsLoggedIn в Database с LastLoginTime, и при каждом входе в систему я могу использовать эти два флагачтобы определить, существует ли активный сеанс.

Открыть для других лучших решений, если таковые имеются

1 Ответ

0 голосов
/ 31 мая 2018

Я думаю, что более надежным решением, чем проверка времени последнего входа в систему, было бы создание и сохранение id для каждого нового входа в систему, а затем включение промежуточного программного обеспечения, чтобы убедиться, что id сеанса для каждого пользователя соответствует ожидаемому.Таким образом, каждый раз, когда пользователь входит в систему на другом устройстве, предыдущее будет аннулировано, и одновременно будет действителен только один сеанс.Вы даже можете использовать express-session req.session.id.

...