使用SPA和oidc-js的会话超时?

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (1)
  • 关注 (0)
  • 查看 (664)

我使用角度5与oidc-client和身份服务器4. oidc-client是否支持会话超时或我需要手动实现它?

提问于
用户回答回答于

对于您的SPA应用程序,您可以使用隐式流程,不能自动刷新令牌,但oidc-client.js可以让您轻松实现。您可以使用静默刷新,oidc-client将发送活动cookie会话以在新的到期之前获得新的access_token。你只需要配置它

const config = {
  authority: xxxxx,
  client_id: xxxxx,
  popup_redirect_uri: `${OidcConfig.clientRoot}/assets/html/popup-login-redirect.html`,
  scope: 'openid profile',
  response_type: 'id_token token',
  post_logout_redirect_uri: `${OidcConfig.clientRoot}?postLogout=true`, // delet all stored tokens after logout
  userStore: new WebStorageStateStore({ store: window.localStorage }),
  automaticSilentRenew: true, // enable silent refresh
  silent_redirect_uri: `${OidcConfig.clientRoot}/assets/html/silent-refresh-redirect.html` // here when you can get the new tokens
};

这是silent-refresh-redirect.html的内容

  <script src="https://cdnjs.cloudflare.com/ajax/libs/oidc-client/1.5.1/oidc-client.min.js"></script>
  <script>
  var config = {
     userStore: new Oidc.WebStorageStateStore({ store: window.localStorage })
  };
  new Oidc.UserManager(config).signinSilentCallback()
    .catch((err) => {
        console.log(err);
    });

  </script>

扫码关注云+社区

领取腾讯云代金券