Oidc-Client UserManager未定义错误

时间:2018-07-18 13:45:31

标签: angular identityserver3 oidc-client-js

根据本教程,我将使用Identity Server 3(Implicit Flow)构建一个angular 5应用程序: https://www.scottbrady91.com/OpenID-Connect/Silent-Refresh-Refreshing-Access-Tokens-when-using-the-Implicit-Flow (他使用身份4)

到目前为止,一切正常,除了无提示刷新页面的signinSilentCallback调用。我的页面如下:

<head>
    <title></title>
</head>
<body>
        <script src="https://cdnjs.cloudflare.com/ajax/libs/oidc-client/1.3.0/oidc-client.js"></script>
<script>    
    new UserManager().signinSilentCallback()
        .catch((err) => {
            console.log(err);
        });
</script>
</body>

我最初是直接参考odic-client.js文件作为他的示例,但是无论哪种方式,我都会不断遇到以下错误:

  

VM861silent-refresh.html:7未捕获的ReferenceError:未定义UserManager       在VM861 Silent-refresh.html:7

不知道我缺少什么,为什么它不能创建对UserManager对象的引用。 .js已加载,正如我在Chrome的“网络”标签中看到的文件一样。令牌到期后,“网络”标签中会显示“ silent-refresh.html”页面以及oidc-client.js文件。

2 个答案:

答案 0 :(得分:1)

这对我有用:

新的 Oidc .UserManager()。signinSilentCallback() .catch((err)=> { console.log(err); });

答案 1 :(得分:0)

我让它工作了,我必须做两件事:

  1. 在Identity Server客户端中,我必须设置filter(model.Member.table_id == model.Package.id),这很有意义,因为我正在执行无提示刷新,所以我不需要常量。

  2. 在角度方面,在调用signinSilentCallback()之前,我必须运行self.addEventListener('sync', function(event) { if (event.tag == 'myFirstSync') { event.waitUntil(doSomeStuff()); } });

那之后,我看到令牌刷新了。