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',
另外:
- 在出现错误之前,我可以使用Azure AD B2C 登录页面正常登录。
- 当我使用端点 v1(通过从权限中删除 "v2.0" 后缀)时,它按预期工作。
- 我使用 "Sign up and sign in"(这里没有自定义策略)。
您可以尝试在浏览器中执行以下请求获取代码,参考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
)。否则,返回的访问令牌将是未定义的。
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',
另外:
- 在出现错误之前,我可以使用Azure AD B2C 登录页面正常登录。
- 当我使用端点 v1(通过从权限中删除 "v2.0" 后缀)时,它按预期工作。
- 我使用 "Sign up and sign in"(这里没有自定义策略)。
您可以尝试在浏览器中执行以下请求获取代码,参考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
)。否则,返回的访问令牌将是未定义的。