{{isAuthenticated$ | async }}
console.log(this.isAuthenticated$) - это бессмысленно. Выводить поток и потом выковыривать из него хранимое значение не надо.this.isAuthenticated$.subscribe(v => console.log(v))getUser() {
return this.http.get('/server/api/userService').pipe(
tap(data => this.isAuthenticated$.next(!!data['login'])),
tap(data => {
console.log('user', data);
console.log('isAuthenticated', !!data['login']);
}),
);
}
c - это ссылка, когда вы ей присваиваете новый объект предыдущее значение теряется.this и никак больше.c будет сохранена ссылка на созданный объект, но не раньше.он ищет эту переменную выше в глобальной области видимости, и в конце то концов полюбому найдет, к чему это было сказано?
let a = 5;
function func() {
a = a + 1;
console.log(1);
}func изменится переменная a, func "замыкает" a. Ссылка на a считается живой, если возможен вызов func
После добавления такого кода получаю в цикле ошибку
такой способ помещения метода запроса в разметку, плохая идея
Вот кусок реального легаси кода, причем не самого навороченного
тут jwt помогает пройти аутентификацию, но за данными юзера все равно лезут в базу и передают их дальше в запрос. Каждый раз.
По идее токен должен так же содержать данные для авторизации, а обращение к бд будет только в фазе создания (или рефреша) токена, иначе зачем вообще токен.
Сервис может вообще ничего не знать про существование базы юзеров.
Видите ли, есть два основных типа аутентификации и авторизации юзера, криптографический (распознавание отпечатка) и реестровый (ищем запись сессии), нет смысла их смешивать.