signinSilentCallback与oidc-client获取“用户未在存储中找到”

时间:2017-10-31 16:52:16

标签: javascript angular oidc-client-js

我正在使用带有角度4 app的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应用程序中使用它(或者,我不挑剔,其他应用程序),请帮助我:))

1 个答案:

答案 0 :(得分:1)

看起来我正在使用此消息关注红鲱鱼,"用户未在存储中找到#34;因为那里确实没有问题。我遇到的问题是更新授权标头以包含续订令牌。一旦我明白了,一切都很开心。

相关问题