首页 > 解决方案 > Jhipster - 当前在 Angular 前端登录的用户

问题描述

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

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

任何人都可以帮忙吗?

标签: angularauthenticationjhipster

解决方案


您可以通过调用 获取当前的身份验证状态,如果用户未登录,accountService.getAuthenticationState()则返回一个对象,否则返回一个对象。nullAccount

拥有帐户后,您可以从中获取用户登录名并调用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)
          );
        }
      }
    );
  }
...

推荐阅读