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

时间:2018-06-14 02:45:26

标签: oidc-client-js

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

在身份验证期间,oidc-client会抛出错误:

sub from user info endpoint does not match sub in access_token

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

  • 发布到API的/openid/login?signin=xxx
  • 重定向到API的/openid/connect/authorize
  • 重定向回角度应用

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

API未实现userinfo端点,/openid/connect/userinfo返回一个空对象:{}

然后oidc-client通过上面的错误消息停止了整个过程。

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

1 个答案:

答案 0 :(得分:2)

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

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

oidc-client-js

  • loadUserInfo (布尔值,默认值:true):用于控制是否从用户信息端点加载其他身份数据以填充用户个人资料的标记。