Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angular/30.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Angular 未定义Oidc客户端用户管理器错误_Angular_Identityserver3_Oidc Client Js - Fatal编程技术网

Angular 未定义Oidc客户端用户管理器错误

Angular 未定义Oidc客户端用户管理器错误,angular,identityserver3,oidc-client-js,Angular,Identityserver3,Oidc Client Js,基于本教程,我正在使用Identity Server 3(隐式流)构建angular 5应用程序: (他使用身份4) 到目前为止,除了静默刷新页面的signinSilentCallback调用之外,一切都正常。我的页面看起来像: <head> <title></title> </head> <body> <script src="https://cdnjs.cloudflare.com/ajax/libs/

基于本教程,我正在使用Identity Server 3(隐式流)构建angular 5应用程序: (他使用身份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>

新建UserManager().signinSilentCallback()
.catch((错误)=>{
控制台日志(err);
});
我最初直接引用odic-client.js文件作为他的示例,但无论哪种方式,我都会得到以下错误:

VM861静默刷新.html:7未捕获引用错误:未定义UserManager 在VM861静默刷新。html:7


不确定我遗漏了什么,为什么它不能创建对UserManager对象的引用。js被加载,正如我在Chrome的网络选项卡中看到的那样。令牌过期后,网络选项卡中将显示silent-refresh.html页面以及oidc-client.js文件。

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

  • 在Identity Server客户端中,我必须设置
    RequireConsent=false
    ,这很有意义,因为我正在进行静默刷新,无法请求常量

  • 在角度方面,在调用signinSilentCallback()之前,我必须运行
    window.location.hash=decodeURIComponent(window.location.hash)

  • 之后,我看到令牌刷新。

    这对我来说很有效:

    新建Oidc.UserManager().signinSilentCallback() .catch((错误)=>{ 控制台日志(err); });