Angular: Как получить идентификатор пользователя в API авторизации - PullRequest
0 голосов
/ 03 марта 2020

У меня есть следующий блок кода службы под authorize.service.ts, и из этого возвращаемого значения я могу получить текущее имя пользователя, вошедшего в систему:

  public getUser(): Observable<IUser | null> {
    return concat(
      this.userSubject.pipe(take(1), filter(u => !!u)),
      this.getUserFromStorage().pipe(filter(u => !!u), tap(u => this.userSubject.next(u))),
      this.userSubject.asObservable());
  }

Это функция getUserFromStorage():

  private getUserFromStorage(): Observable<IUser> {
    return from(this.ensureUserManagerInitialized())
      .pipe(
        mergeMap(() => this.userManager.getUser()),
        map(u => u && u.profile));
  }

Я вызываю эту службу в своем файле login-menu.component.ts, где я получаю имя пользователя следующим образом:

  ngOnInit() {
    this.isAuthenticated = this.authorizeService.isAuthenticated();
    this.userName = this.authorizeService.getUser().pipe(map(u => u && u.name));
  }

Мне нужно также получить идентификатор пользователя, как как я получаю имя пользователя.

1 Ответ

1 голос
/ 03 марта 2020

В компонент добавьте эту функцию.

ngOnInit() {
  this.authorizeService.getUser()
    .subscribe(data => {
      console.log(data); //You will get all your user related information in this field
    });
}
...