使用MSAL登录角度应用程序后获取访问令牌时出错

时间:2018-01-18 02:14:58

标签: angular azure-ad-b2c msal

我在角度应用中使用MSAL进行身份验证。首先,我使用https://github.com/Gimly/NetCoreAngularAzureB2CMsal链接中的应用程序作为我在天蓝色创建的租户的演示应用程序。在我登录之后,在我进行API调用之前,我成功地获得了访问令牌而没有任何问题上面的演示应用程序。获取访问令牌的代码如下所示

this.clientApplication =
        new Msal.UserAgentApplication(
            environment.clientID,
            this.authority,
            this.authCallback,
            {
                redirectUri: window.location.origin
            });

public getAuthenticationToken(): Promise<string> {
    console.log(this.clientApplication);
    return this.clientApplication.acquireTokenSilent(environment.b2cScopes)
        .then(token => {
            return token;
        }).catch(error => {
            return this.clientApplication.acquireTokenPopup(environment.b2cScopes)
                .then(token => {
                    return Promise.resolve(token);
                }).catch(innererror => {
                    console.error('Could not retrieve token from popup.', innererror);
                    return Promise.resolve('');
                });
        });
}

为了检查发生了什么,我在获取令牌之前记录了'this.clientApplication',它有一个用户,如下图所示

enter image description here

现在我遵循相同的方法并尝试将其集成到我的实际角度应用程序中。我还启用了https://github.com/spottedmahn/NetCoreAngularAzureB2CMsal/blob/error-debugging/ClientApp/app/services/authentication.service.ts

中提到的日志记录

我能够成功登录该应用。但是当我试图获取访问令牌时,我收到一个错误“需要用户登录”并且我在登录控制台的'this.clientapplication'中没有'user',如下图所示。

enter image description here

这看起来很奇怪,因为我能够成功登录但仍然收到此错误。请帮帮我。

0 个答案:

没有答案