2014-10-03 2 views
14

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

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

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

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

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

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

Надеясь найти достойные ответы

Благодарности

+0

Если приведенные ниже ответы представили решение на свой вопрос, пожалуйста, примите ответ, нажав на флажок рядом ответ.Это поможет будущим пользователям искать ответ на тот же вопрос. Спасибо. – SnareChops

ответ

23

1) Это правильно, что sessionStorage носит временный характер, и он был разработан, чтобы сделать это.

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

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

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

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

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

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

+2

В Угловом хранилище сеансов - информация теряется при открытии в новой вкладке. Если я делаю что-то неправильно. Хороший ответ, хотя. Спасибо – GeekOnGadgets

+0

Это странно. Какой браузер вы используете? или вы заметили это во всех браузерах? – SnareChops

+4

Хранилище сеансов привязано к определенной вкладке/окну и не делится между вкладками браузера, даже если они имеют доступ к одному и тому же URI. Если вам нужно поделиться чем-то между двумя вкладками или окнами, вам нужно использовать 'localStorage'. Обратите внимание, что правила одинакового происхождения все еще применяются. – demisx

Смежные вопросы