Я использую localStorage
для токена авторизации. для сохранения я использую localStorage.setItem('token','value')
и для удаления я использую localStorage.clear()
и оба работают нормально. Но когда я вошел в систему с другим пользователем, конструктор службы до отправки предыдущего токена, который фактически удален из localStorage()
. Сервисный конструктор ниже
token: string;
constructor(private http: HttpClient) {
const user = JSON.parse(localStorage.getItem('eq_user'));
if ( user ) {
this.token = user.access_token;
}
}
Логин:
login() {
this.auth.login(data).subscribe((response: UserToken) => {
localStorage.setItem('eq_user', JSON.stringify(response));
this.router.navigate([this.returnUrl]);
},
error => {
this.error = true;
this.errorMsg = error.message;
}
}
Выйти
onLogout() {
localStorage.removeItem('eq_user');
localStorage.clear();
this.authService.logout().subscribe( s => {
this.route.navigate(['login']);
});
}
следующая ссылка идентична моей проблеме.
https://stackblitz.com/
Сначала нажмите setValue
, а затем нажмите A в компоненте и A в сервисе, в первый раз он примет правильное значение. Но когда вы снова нажимаете на setValue, а затем нажимаете на две другие кнопки, кнопка «Компонент» возвращает новое значение, но служба не возвращает новые значения.