diff --git a/packages/auth/src/vpu-auth.js b/packages/auth/src/vpu-auth.js index aa1e549a8997ac4656838a4ab5f01c26a4c67e17..5078d71411638bd1112552192709e08a683e04e9 100644 --- a/packages/auth/src/vpu-auth.js +++ b/packages/auth/src/vpu-auth.js @@ -85,6 +85,9 @@ class VPUAuth extends VPULitElement { this.personId = personId; this._setLoginStatus(LoginStatus.LOGGED_IN, tokenChanged); } else { + if (this._loginStatus === LoginStatus.LOGGED_IN) { + this._setLoginStatus(LoginStatus.LOGGING_OUT); + } this.name = ""; this.token = ""; this.subject = ""; @@ -217,7 +220,11 @@ class VPUAuth extends VPULitElement { } onLogoutClicked(e) { - this._setLoginStatus(LoginStatus.LOGGING_OUT); + // Keycloak will redirect right away without emitting events, so we have + // to do this manually here + if (this._loginStatus === LoginStatus.LOGGED_IN) { + this._setLoginStatus(LoginStatus.LOGGING_OUT); + } this._kcwrapper.logout(); }