Сессионное хранилище — странная штука, я много лет знаю о нём, но почти никогда не использовал. Просто потому что почти всегда localStorage лучше. Но сегодня я нашёл ему хорошее применение.

Отложенное действие после авторизации через редирект
У меня была авторизация через попап с открытием новой вкладки и отправкой токенов через postMessage. К сожалению, этот способ плохо работает внутри телеграма и других подобных кейсов. Не говоря уже о случае, когда вкладка просто не открывается. Но это было удобно, можно было отложить действие до момента авторизации и продолжить его после.
Сейчас нужно переходить на авторизацию через редирект и тут такой кейс провернуть уже сложнее. Нужно где-то хранить действие, чтобы вернуться к нему после успешной авторизации. И тут отлично подойдёт именно sessionStorage. Нам не нужно, чтобы это утекало в другие вкладки и в целом не нужно хранить это действие, оно актуально только внутри текущей сессии.
// Перед редиректом на авторизацию
sessionStorage.setItem('pendingAction', JSON.stringify({ type: 'subscribe', id: 42 }))
// После успешной авторизации
const action = JSON.parse(sessionStorage.getItem('pendingAction') ?? 'null')
sessionStorage.removeItem('pendingAction')
if (action) handleAction(action);В целом, localStorage здесь тоже сработал бы, но потребовал бы следить за устаревшими данными и пересечением между вкладками.
Комментарии