У нас есть решение, которое использует несколько SPA, написанных на Angular и AngularJS.Эти приложения реализуют библиотеку oidc-client-js и проходят проверку подлинности в Identity Server 4. Из-за ограничений AngularJS нам необходимо отобразить наши устаревшие приложения AngularJS в iframe.Есть одно основное приложение, которое позволяет войти через IdentityServer4, и тогда мы можем открыть различные SPA внутри этого основного приложения.Это работает нормально, пока мы не выйдем из системы, а затем войдем в систему от другого пользователя.В основном приложении и приложениях, написанных на Angular7, пользователь прав, но когда мы входим в приложение, которое отображается в iframe, пользователь остается с предыдущего сеанса.
В соответствии с документами IdentityServer, которые я пытался добавить FrontChannelLogoutUri
для уведомления всех зарегистрированных клиентов и завершения всех сеансов.Но я не нашел, что должна делать эта страница выхода из системы.
Также я пытался очистить все разрешения при выходе из системы, но нет разрешений для очистки.Чтобы добиться этого, я использовал следующий метод:
await _persistedGrantService.RemoveAllGrantsAsync(subjectId, clientId);
Этот метод из IdentityServer возвращает пустой список.
var grants = await _interaction.GetAllUserConsentsAsync();
Я верю, что после визуализации FrontChannelLogoutUri сеанс должен быть завершен, но я понятия не имею,как этого добиться.