запретить одновременный вход от того же пользователя в javafx

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

1 ответ

  1. Это может быть несколько сложно. Клиент должен предоставить уникальный случайный идентификатор для каждого соединения, и сервер должен сохранить его.

    Сложнее всего узнать, когда пользователь выходит из системы. В обычной ситуации вы можете создать метод REST для выхода из системы, но что произойдет в случае нелюбезного завершения работы? Откуда сервер знает, что клиента больше нет?

    Я вижу пару способов работать с этим:

    1. Сохраняйте вход пользователя в начальный сеанс. После входа пользователя отклоните новые запросы проверки подлинности. Это сложно, потому что нужно найти способ справиться с неграциозным завершением работы клиента, хранящего метку времени последнего сообщения, которым обменивался этот сеанс.
    2. Уничтожьте старый сеанс, если получите новый. Таким образом, вы избежите ситуации решения 1, и пользователь всегда сможет войти в систему. Старые сеансы будут признаны недействительными.