Доступ к имени пользователя в angular

#angular #angular7 #angular8 #angular9

#angular #angular7 #angular8 #angular9

Вопрос:

Я довольно новичок в разработке интерфейсов. Один вопрос, который мне задали в интервью angular, и я не смог на него ответить. Вопрос заключается в следующем:

Предположим, у вас есть экран входа в систему, и вы вводите имя пользователя и пароль для входа. Теперь после 5-6 страниц или после n количества страниц существует требование, требующее имени пользователя. Как вы получите доступ к имени пользователя там? Моим ответом было, что я могу использовать queryparam для этого. Затем интервьюер сказал, что это можно сделать с помощью параметров запроса, но это не очень хороший способ всегда переносить имя пользователя в параметры запроса.

Каким должен быть правильный ответ на это? Как это можно сделать

Комментарии:

1. Сохраните его в локальном хранилище, хранилище сеанса или извлеките с сервера.

2. Как сказал @RobbyCornelissen, вы не помещаете его в localStorage или sessionStorage, но в большинстве случаев вы сохраняете такого рода информацию в выделенной (аутентификационной) службе при получении ее с сервера

Ответ №1:

Предполагая, что вы заранее отправили HTTP-запрос для ПОЛУЧЕНИЯ необходимой информации, вы можете сохранить его в локальном хранилище, хранилище сеансов или, в зависимости от размера вашего веб-приложения, я часто сохраняю его в хранилище NgRx.

Ответ №2:

Метод 1: используйте HTTP-запрос GET для подключенного серверного сервера и извлеките оттуда зарегистрированного пользователя, который сохраняется при успешном входе в систему.

Метод 2: В Angular мы можем сохранить вошедшего в систему пользователя в сервисе. И используйте внедрение зависимостей для получения значения переменной.(это может быть ответ, который они ожидали, если смотреть с точки зрения интерфейса angular) Если вы находитесь на любой странице, вы можете получить значение из службы angular, ссылка ниже показывает, как это реализовано

https://angular.io/guide/dependency-injection

Ответ №3:

Используйте токены для получения данных из серверной части при входе в систему. Создайте класс в своем интерфейсе, в котором есть методы, отвечающие за извлечение определенной информации из вашего токена, например, имя пользователя, идентификатор, адрес электронной почты и т. Д.

Вы можете вызывать методы этого класса везде, где вам нужно в вашем интерфейсе, просто введя этот класс (содержащий МЕТОДЫ, отвечающие за извлечение информации из токена)

Я предпочитаю JWT