静默更新后未请求 IdentityServer 用户信息端点

IdentityServer userinfo endpoint not requested after silent renew

我们目前面临的问题是静默更新将在大约 30 分钟后不起作用。我们能够确定 IS4 上缺少 SubjectId。

在 chrome 中查看客户端请求的网络选项卡时,可以看到以下顺序:

  1. 身份验证请求
  2. 静默续订请求
  3. 用户信息请求

network requests

在下一个身份验证请求之前缺少第三步,我猜是因为 SubjectId。

我们的访问令牌生命周期为 1 小时,身份令牌生命周期为 5 分钟。出于测试目的,我们将静默更新设置为每 4 分钟触发一次。 我们将 oidc-client-js@1.4.1 与 redux-oidc 库结合使用。

我们在客户端/服务器端的配置中是否忘记了什么?

非常感谢。

我认为您必须监听 UserLoaded 事件,因此您将在静默刷新请求后加载新用户

this._userManager.events.addUserLoaded(args => {
  this._userManager.getUser().then(user => {
    this._user = user;
  });
});

每次静默刷新调用后都会调用 getUser 以获取新用户

问题不在客户端。用户的 cookie 在后端过期。
link to github with solution by the creator