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

标签 angular authentication jhipster

如何在 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)
          );
        }
      }
    );
  }
...

关于angular - Jhipster - 当前在 Angular 前端登录的用户,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60903197/

相关文章:

angular - HttpClient 未运行构造函数

c# - C# 中的 Dictionary.ContainsKey() 未在字典中找到键

java - Keycloak 缺少表单参数 : grant_type

显示为 Null 的 Spring 属性

JHipster VM 与 DTO

jhipster - JHipster 中的微服务如何与其他微服务通信

angular - 在为所有平台设计响应式应用程序时,我应该使用 MDBootstrap 还是 Material 2 进行设计

angular - 导入到 Controller 后,三个 JS + Angular 7 出现错误 BufferAttribute

angular - 升级 Angular 和项目后找不到编译器 ngcc 模块

php - 验证失败,即使密码正确,使用 bcrypt 哈希方法