diff --git a/packages/auth/src/auth-keycloak.js b/packages/auth/src/auth-keycloak.js
index a8884b341e0746b8da338e37d4b9715709c75da0..85aefa81175c09b03b667be71280cf52f289886e 100644
--- a/packages/auth/src/auth-keycloak.js
+++ b/packages/auth/src/auth-keycloak.js
@@ -27,6 +27,7 @@ export class AuthKeycloak extends AdapterLitElement {
         this.entryPointUrl = '';
         this._user = null;
         this._userId = "";
+        this._authenticated = false;
         this._loginStatus = LoginStatus.UNKNOWN;
         this.requestedLoginStatus = LoginStatus.UNKNOWN;
         this._i18n = createInstance();
@@ -110,6 +111,7 @@ export class AuthKeycloak extends AdapterLitElement {
     async _onKCChanged(event) {
         const kc = event.detail;
 
+        this._authenticated = kc.authenticated;
         if (kc.authenticated) {
             let tokenChanged = (this.token !== kc.token);
             this.name = kc.idTokenParsed.name;
@@ -125,7 +127,9 @@ export class AuthKeycloak extends AdapterLitElement {
                     this._user = user;
                 }
             }
-            this._setLoginStatus(LoginStatus.LOGGED_IN, tokenChanged || userChanged);
+            if (this._user !== null) {
+                this._setLoginStatus(LoginStatus.LOGGED_IN, tokenChanged || userChanged);
+            }
         } else {
             if (this._loginStatus === LoginStatus.LOGGED_IN) {
                 this._setLoginStatus(LoginStatus.LOGGING_OUT);
@@ -211,8 +215,9 @@ export class AuthKeycloak extends AdapterLitElement {
             } else if (this.tryLogin) {
                 this._setLoginStatus(LoginStatus.LOGGING_IN);
                 await this._kcwrapper.tryLogin();
-                if (this._loginStatus === LoginStatus.LOGGING_IN)
+                if (!this._authenticated) {
                     this._setLoginStatus(LoginStatus.LOGGED_OUT);
+                }
             } else {
                 this._setLoginStatus(LoginStatus.LOGGED_OUT);
             }