Где хранить refreshToken на фронте?
Пытаюсь разобраться с JWT авторизацией применительно к фронтенд приложению.
Есть 2 токена
- Первый авторизационный accessToken у которого время жизни маленькое (15 минут для примера)
- Второй refreshToken который нужен для обновления/перевыпуска accessToken-а. У refreshToken время жизни большое (30 дней например)
Из документации - "Предполагается что refreshToken нужно хранить в неком очень защищенном месте на фронте". Объясните пожалуйста что это за место. Если кто-то внедрил вредоносный js код в приложение, как обезопасить refreshToken? Я знаю только о куке с флагом httpOnly, которая недоступна из javaScript. Что если нет возможности выставить куку? Какие ещё варианты безопасного хранения токена есть?
Ответы (1 шт):
Во 1 можно хранить куки без сервера вот код. Во 2 я советую хранить accessToken в sessionStorage, а refreshToken в LocalStorage с проверкой времени по интервалу(но это может быть небезопасно)