MSAL 身份验证:POST 请求正文中缺少 401 和 client_assertion' 或 'client_secret'

MSAL Authentication: 401 and client_assertion' or 'client_secret' missing in POST request body

我在调用我的 login() 函数时收到 2 个不同的错误,如下所示:

login() {
    if (this.msalGuardConfig.interactionType === InteractionType.Popup) {
      if (this.msalGuardConfig.authRequest){
        this.authService.loginPopup({...this.msalGuardConfig.authRequest} as PopupRequest)
          .subscribe(() => this.checkAccount());
        } else {
          this.authService.loginPopup()
            .subscribe(() => this.checkAccount());
      }
    } else {
      if (this.msalGuardConfig.authRequest){
        this.authService.loginPopup({...this.msalGuardConfig.authRequest} as RedirectRequest);
      } else {
        this.authService.loginPopup();
      }
    }
  }

我收到以下两个错误:

我几乎从这个 repo 复制了身份验证流程:https://github.com/Azure-Samples/ms-identity-javascript-angular-spa-aspnetcore-webapi 这是 Azure 的正式版本,我设置了所有内容,就像他们在自述文件的设置部分所做的那样。所以 app.module.tsapp.component.ts 看起来当然与我的租户和 clientIDs 的替换环境变量相同。我还使用了相同的包版本 (msal-angular@^2.0.0-alpha.3).

如果您对这些错误有任何提示或想法,我们将不胜感激。 提前致谢!

要解决此错误,您需要在 Azure 门户中将应用中使用的重定向 URI 设置为“单页应用程序”类型。