У меня следующий код js
var keycloak = Keycloak({
url: 'https://#keycloakurl#/auth',
realm: '#keycloakrealm#',
clientId: '#keycloakcid#'
});
if(#use_cert#) {
keycloak.onAuthLogout = function () { window.open('http://#hostname#/bye.html') };
keycloak.init({onLoad: 'login-required'}).success(function(authenticated) {
console.log(authenticated ? '[KEYCLOAK] grafana user authenticated' : '[KEYCLOAK] grafana user not authenticated');
}).error(function() {
console.log('[KEYCLOAK] keycloak failed to initialize');
});
}
Я добавил этот код в один из index.html моего веб-приложения. Единственная обязанность этого кода - проверить, вошел ли пользователь в систему, если он не перенаправлен на страницу входа, и определить, произошел ли выход из системы на любой другой вкладке.
Таким образом, выход из системы и вход в систему работают должным образом, checkLoginIframe обнаруживает, произошел ли выход из системы на другой вкладке, и открывается страница входа.
Что я хочу сделать, это как только обнаружен выход из системы, страница должна быть перенаправлена на пользовательскую страницу выхода из системы, такую как logout.html или что-то в этом роде. Я добавил обработчик события onAuthLogout, но при каждом выходе из системы происходит автоматическое перенаправление страницы на страницу входа в keycloak. Следовательно, я думаю, что управление / область действия переходит на страницу keycloak, и onAuthLogout никогда не вызывается. Используя onAuthLogout или любой другой метод, как перенаправить его на http://hostname/bye.html
Примечание: я не смогу вызвать свой пользовательский выход из системы, потому что весь этот код должен обнаруживать выход из системы на других вкладках.