Проблемы с хранением информации о пользователях для фреймворка выхода из системы

Этот вопрос немного больше о концепциях.

Итак, у меня есть бэкэнд-сервер wildfly, который связан с созданной мной базой данных MySQL 5.5. Я пытаюсь осуществить вход - выход из системы на моем сайте. Чтобы войти / зарегистрироваться и выйти, я использую Google oauth2 API: <div class="g-signin2" data-onsuccess="onSignIn"></div>

Как только это произойдет, я отправляю id_token (от Google) до моего внутреннего сервера (через веб-сокет. До того, как я внедрил систему входа / выхода из системы, я использовал веб-сокеты для связи между моим JavaScript и сервером Wildfly). Идентификатор id_token проверяется там, а затем пользователь добавляется в мою базу данных MySQL, если он / она зарегистрировался, и в этот момент база данных создает идентификатор для пользователя. Он возвращает это обратно в JavaScript (через безопасное соединение через веб-сокет). Если пользователь вошел в систему, то (после id_token был проверен) его / ее идентификатор извлекается из базы данных и отправляется в мой JavaScript.

Как только это происходит, пользователь должен иметь доступ к некоторым защищенным страницам, доступ к которым могут получить только зарегистрированные пользователи. Мой вопрос: как я могу это сделать (я не прошу вас писать код для меня, а вместо этого указывать мне правильное направление). Сначала я думал, что в моей панели навигации я добавлю доступ к защищенным страницам после того, как пользователь вошел в систему, но затем незарегистрированные пользователи также могут получить к ним доступ.

Во-вторых, как можно передать идентификатор пользователя между защищенными страницами. Например, если пользователь нажимает на страницу X, а затем на страницу Y, как может JavaScript страницы X и страницы Y получить доступ к идентификатору. Я подумал, что сделать это можно через сохранение идентификатора, отправленного с сервера как localStorage или cookie, но в соответствии с этой статьей небезопасно хранить конфиденциальную информацию как localStorage или Cookie. Итак, как мне сохранить этот идентификатор пользователя, чтобы, когда пользователь заходит на любую защищенную страницу и делает что-то, что требует взаимодействия веб-сайта с сервером / базой данных, идентификатор может быть передан, и для этого могут быть внесены соответствующие изменения в базу данных MySQL. идентификатор / пользователя. (Другой способ сказать, как идентификатор может оставаться постоянным на всех защищенных страницах для сеанса пользователя частиц. Если вы посмотрите на верхнюю часть этого веб-сайта, он отображает вашу фотографию профиля с вашей репутацией, и неважно, куда вы идете веб-сайт, он остается там. Так как разработчики этого веб-сайта сделали это? Они использовали sessopnStorage для хранения идентификатора пользователя, поэтому, когда вы нажимаете на другую защищенную страницу, JavaScript этой страницы отправляет запрос в базу данных, чтобы получить изображение профиля и репутация пользователя, чтобы его можно было затем отобразить на панели навигации? Но разве это не было бы очень неэффективным решением?).

Большое спасибо за помощь и советы! Я никогда не делал этого раньше, и мне было интересно, как это сделать, поэтому большое спасибо за вашу помощь. Я очень ценю это.

0 ответов

Другие вопросы по тегам