首页 > 解决方案 > 用户登录后如何设置令牌?

问题描述

我对 Cube.JS 有疑问:

一个非常常见的用例是仅在用户通过我的应用程序身份验证后才请求 CubeJS 令牌。然后我可以提供一个令牌初始化 CubeJS。

它在文档(https://cube.dev/docs/@cubejs-client-ngx#api)上的方式,您在 app.module 上设置配置,因此,在用户有机会登录之前应用程序。

在我知道用户是谁之后(在他对我的应用程序进行身份验证之后),我将如何设置令牌?

标签: angularcube.js

解决方案


如果我理解你,你只需要一个这样的拦截器:

intercept(req: HttpRequest<any>, next: HttpHandler): Observable<HttpEvent<any>> {

    if (!req.url.toLowerCase().endsWith('/login')
        && req.url.toLowerCase().indexOf('/authenticate') <= 0
        && req.url.toLowerCase().indexOf('/i18n/') <= 0) {
        // Get the auth header from the service.
        const authHeader = this.tokenService.getBearerToken();
        const authReq = req.clone({
             headers: new HttpHeaders({
            'Content-Type':  'application/json',
            'Authorization': authHeader,
            'Accept': '*'
          })}
        );
        return next.handle(authReq);
    }

    return next.handle(req);
}

推荐阅读