繁体   English   中英

如何在angular-keycloak中获取keycloak令牌

[英]How to get keycloak token in angular-keycloak

我正在构建一个聊天应用程序,我使用 sse 实现了实时聊天功能,我使用 keycloak 作为 idap,以允许身份验证我必须使用一个名为 EventSourcePolyFill 的自定义 EventSource 实现,我的前端是用 angular 构建的,我正在尝试做这样的事情,但我是 js 的新手,

    private getEventSource(url: string): EventSourcePolyfill {
    return new EventSourcePolyfill(url, {
      headers: {
        Authorization: 'Bearer ' + this.kcService.getToken,
      },
    });
  }

当我在开发工具中看到承载时发现它是:承载 [object Promise]

看到[object Promise]意味着正在异步返回令牌。 在这种情况下,您需要await this.kcService.getToken

允许的最简单方法是让getEventSource()成为异步的。 这意味着您需要等待对 function 的调用。依此类推,调用堆栈。

另一种方法是确保您已提前获取 keycloak 令牌,并将其作为 arg 传递:

private getEventSource(url: string, token: string): EventSourcePolyfill {
return new EventSourcePolyfill(url, {
  headers: {
    Authorization: 'Bearer ' + token,
    },
  });
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM