Какой способ восстановления сессии после F5 используете вы❓
Когда-то использовал такую схему: refresh в httpOnly cookie, access только в памяти клиента, без localStorage.
Access живёт недолго и нужен для запросов с Authorization: Bearer. Refresh живёт дольше и опаснее при утечке, поэтому его обычно прячут от JS через httpOnly cookie.
После F5 access из памяти пропадает, и это нормально. Чтобы восстановить сессию, клиент может вызвать POST /auth/refresh. Браузер сам приложит cookie, сервер проверит refresh и вернёт новый access.
Но refresh после перезагрузки вызывался не всегда. Для этого был hint в localStorage. Обычный флаг, не токен. Он говорил клиенту: здесь уже логинились, можно попробовать восстановить сессию.
Если hint был, клиент делал refresh по cookie. Если hint не было, сразу считал пользователя гостем и даже не пытался обновить access. Так мы не слали refresh каждому анонимному посетителю после каждого F5.
Но была интересная особенность. Если вручную удалить hint из localStorage, а refresh cookie ещё жива, получалось странное состояние 👇
Сервер всё ещё считает пользователя авторизованным, а клиент после перезагрузки ведёт себя так, будто был выполнен logout, и отправляет на страницу входа.
Получается, что связь между hint и refresh была только на клиенте. Hint без валидной cookie ничего не даёт. Но и cookie без hint после перезагрузки клиент сам не использует.
По сути, настоящая сессия здесь это refresh cookie и её состояние на сервере. Hint был лишь оптимизацией, чтобы не дёргать refresh лишний раз.
Я не эксперт по auth-схемам, это просто кейс из прошлого опыта. Интересно, как вы решаете это у себя? Где храните access и refresh? Нужен ли вообще такой hint? Или проще всегда пробовать refresh при старте приложения? Что делаете, если localStorage очистили, а cookie ещё валидна?
· 25.06
В этих ваших вебах я не Копенгаген, я последнее что под веб делал это что-то на пыхе , но да там всё сурово было пароль хешился и солился а стороне клиента валидировал всё вот это вот хэши токены и т.д. сервак , и было это х. з . когда 100500 лет назад.
0
ответить
коммент скрыт — часть юзеров считает его токсичным или некорректным
коммент удалён
· 06.07
Ну да, в таком случае тяжко вспомнить подробности)
0
ответить
коммент скрыт — часть юзеров считает его токсичным или некорректным
ответ удалён