Jhipster - в данный момент залогинен в Angular Frontend - PullRequest
1 голос
/ 28 марта 2020

Как я могу получить зарегистрированного пользователя (точнее, мне нужен его идентификатор) во внешнем интерфейсе сгенерированного приложения Jhipster? Внешний интерфейс: Angular.

Я видел несколько более старых ответов с использованием класса Principal, но, похоже, его больше не существует.

Кто-нибудь может помочь?

1 Ответ

3 голосов
/ 28 марта 2020

Вы можете получить текущее состояние аутентификации, позвонив по номеру accountService.getAuthenticationState(), при этом будет возвращено либо null, если пользователь не вошел в систему, либо объект Account в противном случае.

После того, как вы получите учетную запись, может получить от пользователя логин и вызвать userService.find(login), который вернет объект типа IUser. На данный момент у вас есть вся необходимая информация от текущего пользователя.

Пример (не тестировался):

export class MyComponent implements OnInit {
  user!: IUser;

  constructor(
    private accountService: AccountService,
    private userService: UserService
  ){}

  ngOnInit(): void {
    this.accountService.getAuthenticationState().subscribe(
      account => {
        if (account){
          this.userService.find(account.login).subscribe(
            user => (this.user = user)
          );
        }
      }
    );
  }
...
...