Где хранить refreshToken на фронте?

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

Есть 2 токена

  1. Первый авторизационный accessToken у которого время жизни маленькое (15 минут для примера)
  2. Второй refreshToken который нужен для обновления/перевыпуска accessToken-а. У refreshToken время жизни большое (30 дней например)

Из документации - "Предполагается что refreshToken нужно хранить в неком очень защищенном месте на фронте". Объясните пожалуйста что это за место. Если кто-то внедрил вредоносный js код в приложение, как обезопасить refreshToken? Я знаю только о куке с флагом httpOnly, которая недоступна из javaScript. Что если нет возможности выставить куку? Какие ещё варианты безопасного хранения токена есть?


Ответы (1 шт):

Автор решения: Anvarjon

Во 1 можно хранить куки без сервера вот код. Во 2 я советую хранить accessToken в sessionStorage, а refreshToken в LocalStorage с проверкой времени по интервалу(но это может быть небезопасно)

→ Ссылка