oidc 客户端和 Azure AD B2C:错误请求

oidc-client and Azure AD B2C: Bad Request

oidc-client returns UserManager.userManager.signinRedirectCallback() 处出现以下错误:

这是我的配置:

  authority: 'https://<tenant_name>.b2clogin.com/<tenant_name>.onmicrosoft.com/<policy>/v2.0',
  client_id: '<client_id>',
  redirect_uri: `http://localhost:4200/login-callback`,
  response_type: 'code',
  scope: 'openid profile',

另外:

您可以尝试在浏览器中执行以下请求获取代码,参考here:

GET https://<tenant_name>.b2clogin.com/<tenant_name>.onmicrosoft.com/<policy>/oauth2/v2.0/authorize?
client_id=<client_id>
&response_type=code+id_token
&redirect_uri=https://jwt.ms
&response_mode=query
&scope=openid offline_access 
&state=123
&nonce=12345

问题不在我的代码中,而在我在 Azure 上的 B2C 设置中。 感谢@chrsi 的 ,我得以修复它。

首先,将应用注册清单中的回复 URL 类型更改为 Spa:

然后,确保设置一些 API 特定范围(例如 https://<tenant>.onmicrosoft.com/api/write)。否则,返回的访问令牌将是未定义的。