Задать вопрос

Cookie или localStorage?

Распространенная реализация авторизации в SPA выглядит так:
axios.post('auth', authData)
    .then(res => {
        token = res.data;
    });

localStorage.setItem('token', token);

axios.defaults.headers.common['token'] = token;

Во всяком случае во многих туториалах она выглядит примерно так.
Вчера смотрел курс Ильи Кантора по авторизации в WebSocket, где он рассматривал передачу session_id на сервер через вебсокеты. Авторизация в проекте была сделана на куках и стояла задача передать sid из куки в ws соединение.
Первый возможный вариант, на который указал Кантор - это убрать с кук флаг httpOnly и получить к ним доступ из js.
Но тут же оговорился, что так небезопасно делать, из-за xss.
Но ведь sid в localStorage это то же самое, что и sid в куках без httpOnly. Я имею ввиду доступность этих данных.
Так можно ли делать авторизацию способом из туториалов с сохранением sid в localStorage?
  • Вопрос задан
  • 5111 просмотров
Подписаться 14 10 комментариев
Подписчики вопроса 14 К ответам на вопрос (4)