Ошибка при добавлении службы AuthGuard в компонент для угловых

Вы должны обновлять bean-компоненты, не пытаясь обновить все приложение, и все конфигурации> beans, которые он загружает.

Из документов Spring,

https: //cloud.spring.io/spring-cloud-static/docs/1.0.x/spring-cloud.html#_refresh_scope

@RefreshScope работает (технически) на @ Класс конфигурации, но это может привести к неожиданному поведению: например это не означает, что все @Beans, определенные в этом классе, сами являются @RefreshScope. В частности, все, что зависит от этих bean-компонентов, не может полагаться на то, что они обновляются при начале обновления, если только он не находится в @RefreshScope (в котором он будет перестроен при обновлении, а его зависимости будут повторно введены, и в этот момент они будут повторно инициализирован из обновленной @Configuration).

Что вам нужно сделать, это обновить компонент, куда вводится значение.

0
задан Zoe 16 March 2019 в 20:43
поделиться

1 ответ

Пожалуйста, удалите инъекцию JwtHelper в конструктор и создайте объект для JwtHelper внутри вашего canActivate следующим образом:

export class AuthGuard implements CanActivate {
  constructor(private router: Router) {
  }
  canActivate() {
    let jwtHelper: JwtHelper = new JwtHelper();

    const token = localStorage.getItem('jwt');

    if (token && !this.jwtHelper.isTokenExpired(token)) {
      return true;
    }
    this.router.navigate(['login']);
    return false;
  }
}
0
ответ дан Lalith Katta 16 March 2019 в 20:43
поделиться
Другие вопросы по тегам:

Похожие вопросы: