Как использовать клиентский ключ-ключ на OnAuthLogout - PullRequest
0 голосов
/ 14 сентября 2018

У меня следующий код 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

Примечание: я не смогу вызвать свой пользовательский выход из системы, потому что весь этот код должен обнаруживать выход из системы на других вкладках.

...