2014-01-29 6 views
3

Как я могу запретить моим пользователям регистрироваться в моей системе с двух устройств одновременно? Поэтому, если пользователь вошел в систему с компьютера, когда он входил в систему с другого компьютера, сеанс сначала автоматически закрывается (не нужно делать его в реальном времени).Node.js один сеанс на одного пользователя

Я использую node.js, express.js, mongoose, паспорт, connect-mongo (для хранения сеансов в базе данных).

ответ

5

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

Пользователь A регистрируется с компьютера A и маркера 123, который создается и сохраняется в базе данных. Теперь, когда Пользователь A отправляет запрос на сервер, он сначала проверяет действительный сеанс, а затем загружает токен пользователя из базы данных, чтобы проверить, действительно ли он действителен.

Теперь пользователь A регистрируется на веб-сайте от компьютера B, а токен 456 назначается пользователю и перезаписывается в базе данных. В следующий раз, когда пользователь A отправляет запрос с компьютера A, сервер проверяет действительный сеанс, и когда он получает токен из базы данных, существует несоответствие, указывающее, что пользователь вошел в систему из другого места, так что текущий сеанс недействителен.

Смежные вопросы