Jhipster - 当前在 Angular 前端登录的用户

ROB*_*ail 4 authentication jhipster angular

如何在 Jhipster 生成的应用程序的前端获取当前登录的用户(更准确地说,我需要他的 ID)?前端是 Angular。

我已经看到一些使用 Principal 类的旧答案,但似乎不再存在。

任何人都可以帮忙吗?

use*_*296 5

您可以通过调用获取当前的身份验证状态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)
          );
        }
      }
    );
  }
...
Run Code Online (Sandbox Code Playgroud)