diff --git a/src/lib/tenants/services/keycloak-status.service.ts b/src/lib/tenants/services/keycloak-status.service.ts index 8b7b082..9c7055d 100644 --- a/src/lib/tenants/services/keycloak-status.service.ts +++ b/src/lib/tenants/services/keycloak-status.service.ts @@ -31,6 +31,21 @@ export class KeycloakStatusService { } } + async switchTenant(tenantId?: string) { + let redirectUri: string; + + if (tenantId) { + redirectUri = this.#keycloakService.getKeycloakInstance().createLoginUrl({ + redirectUri: this.createLoginUrl(tenantId), + idpHint: this.#config.OAUTH_IDP_HINT, + }); + } else { + redirectUri = window.location.origin + this.#baseHref; + } + + await this.#keycloakService.logout(redirectUri); + } + createLoginUrl(tenant?: string) { if (tenant && window.location.href.indexOf('/' + tenant + '/') > 0) { return window.location.href;