diff --git a/assets/dbp-signature.html.ejs b/assets/dbp-signature.html.ejs
index b73a0ff4461ce11cb2ba965e781d2345fd377f63..bf8a725071fe6c65e78bc8c1f43748c19a75be8a 100644
--- a/assets/dbp-signature.html.ejs
+++ b/assets/dbp-signature.html.ejs
@@ -63,7 +63,7 @@
               nextcloud-file-url="<%= nextcloudFileURL %>">
     <<%= name %>
         subscribe="lang:lang,entry-point-url:entry-point-url"
-        auth
+        auth requested-login-status
         src="<%= getUrl(name + '.topic.metadata.json') %>"
         base-path="<%= getUrl('') %>"
         keycloak-config='{"url": "<%= keyCloakBaseURL %>", "realm": "tugraz", "clientId": "<%= keyCloakClientId %>", "silentCheckSsoRedirectUri": "<%= getUrl('silent-check-sso.html') %>"}'
diff --git a/src/dbp-signature-lit-element.js b/src/dbp-signature-lit-element.js
index 306a152b9359e2791573dedb726dd4663de3deda..049f524cc5a895b2690920c960743425247a8b71 100644
--- a/src/dbp-signature-lit-element.js
+++ b/src/dbp-signature-lit-element.js
@@ -1,6 +1,6 @@
-import {EventBus} from '@dbp-toolkit/common';
 import * as utils from "./utils";
 import {AdapterLitElement} from "@dbp-toolkit/provider/src/adapter-lit-element";
+import JSONLD from "@dbp-toolkit/common/jsonld";
 
 export class DBPSignatureBaseLitElement extends AdapterLitElement {
     constructor() {
@@ -23,8 +23,8 @@ export class DBPSignatureBaseLitElement extends AdapterLitElement {
         return (this.auth.person && Array.isArray(this.auth.person.roles) && this.auth.person.roles.indexOf(roleName) !== -1);
     }
 
-    _updateAuth(e) {
-        this._loginStatus = e.status;
+    _updateAuth() {
+        this._loginStatus = this.auth['login-status'];
         // Every time isLoggedIn()/isLoading() return something different we request a re-render
         let newLoginState = [this.isLoggedIn(), this.isLoading()];
         if (this._loginState.toString() !== newLoginState.toString()) {
@@ -33,20 +33,24 @@ export class DBPSignatureBaseLitElement extends AdapterLitElement {
         this._loginState = newLoginState;
     }
 
+    update(changedProperties) {
+        changedProperties.forEach((oldValue, propName) => {
+            switch (propName) {
+                case "auth":
+                    JSONLD.doInitializationOnce(this.entryPointUrl, this.auth.token);
+                    this._updateAuth();
+                    break;
+            }
+        });
+
+        super.update(changedProperties);
+    }
+
     connectedCallback() {
         super.connectedCallback();
 
         this._loginStatus = '';
         this._loginState = [];
-        this._bus = new EventBus();
-        this._updateAuth = this._updateAuth.bind(this);
-        this._bus.subscribe('auth-update', this._updateAuth);
-    }
-
-    disconnectedCallback() {
-        this._bus.close();
-
-        super.disconnectedCallback();
     }
 
     isLoggedIn() {
diff --git a/vendor/toolkit b/vendor/toolkit
index 92da0f592b3828477fde02a784436be89d67d660..e86f826479612647cf9b945c987d87f5a165beb6 160000
--- a/vendor/toolkit
+++ b/vendor/toolkit
@@ -1 +1 @@
-Subproject commit 92da0f592b3828477fde02a784436be89d67d660
+Subproject commit e86f826479612647cf9b945c987d87f5a165beb6