в сервисе authService. Затем, я хочу получить user из другого компонента, но переменная существует только до обновления сайта, когда обновил - значение пропадает.
Вопросы:
1. Если сервис authService синглтон, то почему он пересоздается после обновления сайта?
2. Как правильно хранить данные, которые используются в разных компонентах проекта?
для хранения значений между сессиями можно воспользоваться localstorage
там только токен должен храниться. Например, с сайта отправляется сообщение с автором, а какой-нибудь умный может поменять значения login в localStorage. Больше я хочу получить ответы на вопросы, почему так...)
можно и скрипт поменять на лету если надо, в вашем случае даже если юзер поменял/подделал одну переменную, то никакой разницы быть не должно потому что бекенд должен отклонять запросы если юзер не залогинился
При обновлении сайта пересоздается все приложение, ты же заново с нуля все запускаешь. Вот и сервис пересоздается
Какие есть способы хранить объекты, которые используются в разных компонентах? Например, ngrx, ngxs, или супер статичные классы какие-нибудь
синглтон в понятии ангулара это один инстанс на всё время жизни приложения, а все веб приложения живут в пределах сессии (т.е до тех пор пока F5 не нажмёшь или новую вкладку не откроешь)
бэк, локалсторадж и тд
Сначала надо понять, зачем тебе кейс обновления сайта... каков сценарий и что именно для него нужно сохранять.
Кейс такой- -Залогинился -Сохранил user - Обновил сайт - есть кнопка, которая видна только если есть login в объекте user.
да самый простой вариант, случайно F5 нажал, а кнопки уже нет
А на случай неожиданного отключения света тоже костыль будет предусмотрен?)) Ситуация меганадуманная. Случайно нажал - логинься заново, нечего рукоблудить по клаве)) ну или храни все в сторадже
начинаешь сначала хранить email. потом логин, роли, отдел и тд
если бизнес требует и отображение на ролях завязано, никуда не деться - надо хранить
У тебя сессии или жвт?
Тогда хз
Обсуждают сегодня