Тайм-аут сеанса с использованием SPA и oidc-js

Я использую Angular 5 с oidc-клиентом и сервером идентификации 4. Поддерживается ли время ожидания сеанса в oidc-client или мне нужно реализовать его вручную?

Под тайм-аутом сессии я подразумеваю, что пользователь выйдет из системы после некоторого простоя

1 ответ

Для ваших приложений 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>
Другие вопросы по тегам