Разница между хранением сеансов, локальным хранилищем и файлами cookie в AngularJS

Я хотел бы копаться в Angular, и для этого мне хотелось бы узнать разницу между хранилищем сеансов, локальным хранилищем и файлами cookie.

Проблемные вопросы ---

1) $windows.sessionStorage можно использовать для хранения пользовательского сеанса, но проблема с ним - когда вы открываете что-то на новой вкладке, он снова просит пользователя войти в систему.

2) Будет ли локальное хранилище решением проблемного вопроса 1? и если да, значит ли это, что мне нужно локальное хранилище и хранилище сеансов, как в моем приложении, так и в локальном хранилище, также будет работать как хранилище сеансов.

3) Я также работаю над функцией "Запомнить меня" в моей форме входа в систему - безопасно ли хранить этот пароль и электронную почту пользователя в локальном хранилище, если это не лучший способ запомнить меня в angular

4) Печенье здорово, но корпоративные компании позволяют им пользоваться браузером?

В надежде найти достойные ответы

Спасибо

Ответы

Ответ 1

1) Правильно, что sessionStorage является временным, и он был разработан для этого.

2) Локальное хранилище решит проблему входа в систему с открытием нового сеанса браузера или после долгого ожидания, но нет, localStorage не будет выступать в роли cookie для запросов браузера.

3) Многие различные серверные приложения поддерживают шифрование и поддержку файлов cookie, поддерживающих защиту от несанкционированного доступа. При этом всегда лучше не хранить пароли пользователей в клиенте, возможно, токен, возможно, ваш сервер будет распознавать и иметь возможность расшифровывать/декодировать и искать правильную запись пользователя.

4) Я бы сказал, что в настоящее время да, cookie обычно считается безопасным, однако это всегда возможно, и в зависимости от ваших клиентов или аудитории у вас может быть проблема. Также сеансы не будут работать, если в браузере отключены файлы cookie. (Хотя мой взгляд на это - спекуляция на общее население, то есть: не цитируйте меня на этом)

Моей рекомендацией для ваших нужд является установка переменной сеанса, когда пользователь сталкивается с этой страницей. Затем сохраните результат в localStorage или с помощью файла cookie, а затем, когда пользователь вернется в приложение после того, как сессия умерла, настройте некоторую архитектуру для повторной аутентификации и повторного назначения сеанса автоматически.

Надеюсь, это поможет!

Изменить: Session Cookies совместно используются вкладками браузера в одном окне. Однако отмечено, что хранилище сеансов не указано.