Где лучше хранить данные о сеансе пользователя?

Ссылка скопирована
1 ответ

У меня есть в приложении (react redux) аутентификация пользователя, и мне нужно где то хранить информацию о нём, к примеру банально вывести никнейм в хедере вывести, открыть форму для комментариев итд, подскажите, где и как лучше это делать, я нагуглил несколько вариантов, и мне интересно какие из них применяются в реальных проектах, какие считаются best-practices
1) Хранить в redux сторе, но при этом при перезагрузке или закрытии страницы он слетает, по этому я вижу два варианта:
а) Сохранять redux store в localStorage, Cache API итд.
б) Сохранять токен в localStorage, и при загрузке делать запрос, проверяем токен и в респонсе отдаём инфу которую записываю в редакс стор
2) Просто записывать ответ от апи в localStorage, но напрягает что всё что связано с ним, это работа с парсом строк, а она медленная
3) Видел варианты даже через урлу хранить небольшие данные, но мне интересен кейс где обьект довольно массивен, но не настолько что бы переложить его хранение на АПИ

Дополнительно:

Ответы:

А что будет если пользователь зайдет с двух устройств, или просто в двух браузерах откроет сайт?
В большинстве серьезных сайтов сессию хранят на стороне сервера.

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

  • Если откроет с другого устройства или браузера, то ему придётся залогинится, ну а если произойдёт мутация данных, ну тут да, нужно как то отслеживать этот момент.

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

  • Denis1205,
    php https://www.php.net/manual/ru/book.session.php
    nodejs https://www.npmjs.com/package/express-session
    jango https://docs.djangoproject.com/en/4.1/topics/http/...
  • Denis1205, залогинитЬся*
Нужно решить такую задачу?

Опишите проблему, и специалист поможет с настройкой, исправлением ошибки или доработкой сайта. Подберём понятный план работ без лишней переписки.

Заказать помощь
Лучший ответ
1
Артём Dev Ответ

Для хранения данных о сеансе пользователя веб-приложения можно использовать различные методы и механизмы. Один из наиболее распространенных способов - это использование куки (cookies) или сессий (sessions).

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

Сессии - это механизм хранения данных на сервере, связанный с конкретным пользовательским сеансом. При использовании сессий на сервере создается уникальный идентификатор сеанса, который отправляется клиенту в виде куки. Вся информация о сеансе хранится на сервере, а идентификатор сеанса используется для связи с конкретным пользователем.

Для PHP существует встроенная функциональность для работы с сессиями. Для начала работы с сессиями необходимо вызвать функцию session_start() в начале скрипта. После этого можно сохранять и получать данные из сессии с помощью глобального массива $_SESSION.

Пример использования сессий в PHP:

// Начало сессии
session_start();
 
// Сохранение данных в сессии
$_SESSION['user_id'] = 123;
$_SESSION['username'] = 'john_doe';
 
// Получение данных из сессии
$user_id = $_SESSION['user_id'];
$username = $_SESSION['username'];

// Начало сессии session_start(); // Сохранение данных в сессии $_SESSION['user_id'] = 123; $_SESSION['username'] = 'john_doe'; // Получение данных из сессии $user_id = $_SESSION['user_id']; $username = $_SESSION['username'];

При использовании сессий необходимо учитывать безопасность и защиту от атак, таких как кража сеанса (session hijacking) или подделка сеанса (session fixation). Для этого рекомендуется использовать HTTPS и правильно настраивать параметры сессии, такие как срок действия и безопасность куки.

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

Другие ответы (0)

Пока нет других ответов. Будьте первым, кто поможет автору.

Ответить на вопрос

комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Вам также может быть интересно