OIDC_CLIENT和angularJS出现“无响应状态”错误

时间:2016-08-21 23:53:37

标签: identityserver3

我正在尝试用我的角应用程序中的oidc-client替换旧的oidc-token-manager,但我一直收到此错误 “没有回应的状态”,我已经看过brockallen样本来学习如何使用它,但到目前为止还没有运气。 这就是我的服务。

var config = {
                client_id: "myClient"
                , redirect_uri: "http://127.0.0.1:51899/callback.html"
                , response_type: "id_token token"
                , scope: "openid profile test"
                , authority: "https://localhost:44369"
            };
            var mgr = new Oidc.UserManager(config);

和我的回调页面上的类似内容。

这就是我在mainController中的内容

var tokenManager = {
            mgr: {}
        };
        tokenManager.mgr = oidc.tokenManager();
        startSigninMainWindow(tokenManager);

        function startSigninMainWindow(tokenManager) {
            tokenManager.mgr.signinRedirectCallback().then(function (user) {
                var data = user.state.some;
            }, function (err) {
                console.log(err); // err:'No state in response'
            });
        }

任何人都可以告诉我我做错了什么吗? 谢谢。 PS:顺便说一下,我甚至不再看到身份服务器中的登录屏幕

2 个答案:

答案 0 :(得分:0)

就我而言,有人直接从UI代码调用/login回调路由。 /login路由仅应由SSO服务器(身份提供程序,无论您如何称呼)调用,而不应由UI本身调用。因此,在我们的authGuard中,我们将this.router.navigate(['/login']);替换为this.userManager.signinRedirect();并清除了。

答案 1 :(得分:0)

就我而言,本地存储中存在垃圾。打开Chrome调试器的“应用程序”标签,然后清除所有本地会话存储。然后重新加载该应用。

注意:作为开发人员,您需要了解 oidc客户端将会话/本地存储用于高速缓存。例如,如果您更改令牌的配置,它不会刷新缓存。您必须手动清除存储。