我在角度应用中使用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',它有一个用户,如下图所示
现在我遵循相同的方法并尝试将其集成到我的实际角度应用程序中。我还启用了https://github.com/spottedmahn/NetCoreAngularAzureB2CMsal/blob/error-debugging/ClientApp/app/services/authentication.service.ts
中提到的日志记录我能够成功登录该应用。但是当我试图获取访问令牌时,我收到一个错误“需要用户登录”并且我在登录控制台的'this.clientapplication'中没有'user',如下图所示。
这看起来很奇怪,因为我能够成功登录但仍然收到此错误。请帮帮我。