如何在Jhipster生成的应用程序的前端获取当前登录的用户(更确切地说,我需要他的ID?前端是Angular。
我已经看到了使用Principal类的一些较旧的答案,但似乎不再存在。
任何人都可以帮忙吗?
您可以通过调用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)
);
}
}
);
}
...