具有相同Keycloak的多个项目身份验证

时间:2019-11-25 08:24:32

标签: angular keycloak

我在一个角度应用程序中有多个项目。 我还需要使用一个keycloak应用程序对所有项目进行身份验证。 我对第一个应用程序具有密钥斗篷身份验证,但是现在我需要对所有其他应用程序进行身份验证,但是通过这种方式

ROOT APP
    |
    |--projects
    |    |---app1 
    |    |     |-guard (here is keycloak initializer, guard service and everything for app1)
    |    |     |-app1.module
    |    |     |-app1.routing
    |    |     |-app1.component
    |    |
    |    |---app2
    |    |     |-app2.module
    |    |     |-app2.routing
    |    |     |-app2.component
    |    |
    |    |---app3
    |    |     |-app3.module
    |    |     |-app3.routing
    |    |     |-app3.component
    |    |
    |    |---app4
    |    |     |-app4.module
    |    |     |-app4.routing
    |    |     |-app4.component
    |
    |
    |
    rootApp.module
    rootApp.routing
    rootApp.component

现在,我需要在同一领域使用APP1 and APP2,如果您已经登录app1,则可以直接进入app2,而无需重新登录,并且同样从app2app1

APP3具有唯一的领域,而APP4也具有唯一的领域。

app2中,我尝试添加与app1中相同的keycloak配置,因为它们具有相同的领域,但是在这种情况下我无法运行ng serve,因此无法正常工作。

这是我的app-init.ts

import { KeycloakService } from "keycloak-angular";
import { environment } from "../../environments/environment";

export function initializer(keycloak: KeycloakService): () => Promise<any> {
  return (): Promise<any> => {
    return new Promise(async (resolve, reject) => {
      const { keycloakConfig } = environment;

      try {
        await keycloak.init({
          config: keycloakConfig,
          initOptions: {
            onLoad: "login-required",
            checkLoginIframe: false
          },
          bearerExcludedUrls: []
        });
        resolve();
      } catch (error) {
        reject(error);
      }
    });
  };
}

0 个答案:

没有答案