oidc-client 身份验证失败:来自用户信息端点的 sub 与 access_token 中的 sub 不匹配

oidc-client authentication failure: sub from user info endpoint does not match sub in access_token

我有一个 angular 应用程序使用 oidc-client 访问一个 API,它使用 IdentityServer3 提供 OpenID Connect 身份验证。

在身份验证期间,oidc 客户端抛出错误:

sub from user info endpoint does not match sub in access_token

仅供参考,以下步骤已成功:

但随后 oidc-client 调用了 API 的 /openid/connect/userinfo

API 没有实现 userinfo 端点,/openid/connect/userinfo returns 一个空对象:{}.

然后 oidc-client 停止了上面的错误信息。

oidc-client 中是否有一个选项可以跳过对 userinfo 端点的调用?还是 API 必须实施该端点?

oidc 将始终在内部调用 userinfo 以 verify 用户,因为默认情况下它被设置为 true 并且它的传入 access_token 通过查询 .well-known/openid-configuration。 跳过这个也不是个好主意。您的客户端应用程序是否已在 IDP 上正确注册。

查看以下控制 userinfo 端点的 oidc-client 选项配置:

oidc-client-js

  • loadUserInfo(布尔值,默认值:true):用于控制是否从用户信息端点加载额外身份数据以填充用户配置文件的标志。