我正在使用带有 angular 4 应用程序的 oidc-client 1.3.0。初始身份验证(signinRedirect)工作得很好。但是,当令牌过期时,它会加载silent-renew.js 并尝试执行以下操作:
Oidc.UserManager().signinSilentCallback();
它收到一条错误消息(或某种级别的消息),提示“在存储中找不到用户”。因此,用户不会使用新的令牌信息进行更新。
当我进入 oidc-client 时,我可以看到它以 Promise.resolve() 结束,我希望它会发送给用户。
从 UserManager.js 中,这里的用户返回为未定义:
signinSilentCallback(url) {
Log.debug("UserManager.signinSilentCallback");
return this._signinCallback(url, this._iframeNavigator).then(user => {
if (user) {
if (user.profile && user.profile.sub) {
Log.info("signinSilentCallback successful, signed in sub: ", user.profile.sub);
}
else {
Log.info("signinSilentCallback successful");
}
}
return user;
});
从解决 Promise 的 IFrameNavigator.js :
callback(url) {
Log.debug("IFrameNavigator.callback");
try {
IFrameWindow.notifyParent(url);
return Promise.resolve();
}
catch (e) {
return Promise.reject(e);
}
}
如果你已经让它在你的 angular4 应用程序中工作(或者,我不挑剔,其他一些应用程序),帮助我:)