Vue应用程序中的静默更新无限循环

Silent renew infinite looping in Vue application

我有一个 Vue 应用程序,我试图在其中设置静默令牌更新。

我的 Oidc 配置如下所示:

var mgr = new Oidc.UserManager({
    authority: process.env.VUE_APP_IDENTITY_URL,
    client_id: process.env.VUE_APP_CLIENT_ID,
    redirect_uri: process.env.VUE_APP_REDIRECT_URI,
    scope: 'openid profile',
    response_type: 'id_token token',
    silent_redirect_uri: process.env.VUE_APP_SILENT_REDIRECT_URI,
    userStore: new Oidc.WebStorageStateStore({store: localStorage}),
    automaticSilentRenew: true,
    filterProtocolClaims: true,
    loadUserInfo: true,
})

我也有静默-renew.html页面:

<!DOCTYPE html>
<html>
<head>
    <title>Silent Renew Token</title>
</head>
<body>
    <script src='oidc-client.min.js'></script>
    <script>        
        new Oidc.UserManager().signinSilentCallback().catch((err) => {
            console.log(err);
        });
    </script>
</body>
</html>

当我加载应用程序时,静默更新只是无限循环一遍又一遍:

我的访问令牌还没有到期再过一个小时,但它仍在触发事件,我无法深入了解。有谁知道还有什么可能导致循环?

已通过在客户端设置中设置 monitorSession: false 修复。将其设置为 true 会导致对令牌过期进行重复检查。