身份服务器4中的静默令牌更新,js客户端应用程序未按预期工作

时间:2017-04-17 07:14:09

标签: access-token identityserver4 oidc-client-js implicit-flow

我正在使用身份服务器4为企业档案中的不同应用程序提供身份服务。

使用带有oidc-client.js的身份服务器4应用程序的隐式流注册SPA应用程序并且正在运行。

但问题是令牌更新,需要长时间保留用户登录而不要求用户再次登录。

为了实现这一点,请使用以下配置实现静默令牌更新。

var config = {
    authority: "http://localhost:5000",
    client_id: "jswebclient",
    redirect_uri: "http://localhost:5003/callback.html",
    response_type: "id_token token",
    scope: "openid profile api1",
    post_logout_redirect_uri: "http://localhost:5003/loggedout.html",
    automaticSilentRenew: true,
    silent_redirect_uri : "http://localhost:5003/callback.html" }; 

var mgr = new Oidc.UserManager(config);

使用上述配置自动更新正在进行,但它没有按预期进行静默更新,完整页面重定向到重定向uri正在发生以处理来自身份服务器的响应。

对于ex:index.html是我的实际页面,其中静默更新发生,callback.html是重定向uri,index.html被重定向到callback.html,然后续订,然后重定向回index.html,实际网络日志附在下面,enter image description here

任何人都可以帮我解决问题,让无声更新发生。

1 个答案:

答案 0 :(得分:5)

在google搜索了很多并且参考了许多文章后我发现了问题,这与配置有关,它在将配置更改为以下后才起作用

var config = {
    authority: "http://localhost:5000",
    client_id: "jswebclient",
    redirect_uri: "http://localhost:5003/callback.html",
    response_type: "id_token token",
    scope: "openid profile api1",
    post_logout_redirect_uri: "http://localhost:5003/loggedout.html",
    automaticSilentRenew: true,
    silent_redirect_uri: "http://localhost:5003/silentrenew.html"   
};

var mgr = new Oidc.UserManager(config);

创建了一个新的silentrenew.html页面来处理静默续订响应,并在页面中添加了以下脚本

 <script>
    new Oidc.UserManager().signinSilentCallback();        
 </script>

这就是所有......它开始按预期工作了。