Расскажи про хранение данных: куки, localStorage, sessionStorage. Как происходила авторизация с токенами на твоём проекте?
Answer from AI
sobes.tech AI
Куки, localStorage и sessionStorage — это разные механизмы хранения данных в браузере:
-
Куки — маленькие данные, которые браузер отправляет на сервер с каждым запросом. Используются для хранения сессий и авторизации. Имеют ограничения по размеру и могут быть настроены с флагами безопасности (HttpOnly, Secure).
-
localStorage — хранилище на стороне клиента, данные сохраняются без срока действия, доступны только на стороне клиента, не отправляются на сервер автоматически.
-
sessionStorage — похож на localStorage, но данные живут только в рамках одной сессии (вкладки), удаляются при закрытии вкладки.
В моих проектах для авторизации часто использовали JWT (JSON Web Token), который хранился в localStorage или в HttpOnly куках. Хранение в localStorage удобно, но менее безопасно из-за XSS-атак. Хранение в HttpOnly куках защищает от XSS, но требует CSRF-защиты.
Пример авторизации с токеном:
- Пользователь вводит логин/пароль.
- Сервер возвращает JWT.
- Токен сохраняется в localStorage или в куках.
- При последующих запросах токен добавляется в заголовок Authorization.
Такой подход позволяет серверу проверять подлинность пользователя без хранения сессий на сервере.