Keycloak-如何禁用两个(Angular)客户端应用程序之间的共享会话?

时间:2019-11-03 21:40:25

标签: javascript angular authentication session keycloak

我有两个使用Keycloak的角度客户端进行身份验证的角度客户端应用程序。问题是,当我登录其中一个时,我会自动登录到另一个。我每个人都有一个单独的客户。

两个应用程序中的Keycloak服务初始化如下:

@NgModule({
  declarations: [AppComponent],
  imports: [
    AppRoutingModule,
    BrowserModule,
    KeycloakAngularModule
  ],
  providers: [KeycloakService],
  entryComponents: [AppComponent]
})
export class AppModule implements DoBootstrap {
  constructor(private keycloakService: KeycloakService) {
  }

  ngDoBootstrap(app: ApplicationRef) {
    this.keycloakService
      .init({config: environment.keycloak, initOptions: {onLoad: 'login-required'}})
      .then(() => app.bootstrap(AppComponent));
  }
}

第一个应用的Keycloak配置:

const keycloakConfig: KeycloakConfig = {
  realm: 'quick',
  url: 'http://localhost:8000/auth',
  clientId: 'quick-ui-customer'
};


export const environment = {
  production: false,
  keycloak: keycloakConfig,
};

第二个:

const keycloakConfig: KeycloakConfig = {
  realm: 'quick',
  url: 'http://localhost:8000/auth',
  clientId: 'quick-ui-employee'
};


export const environment = {
  production: false,
  keycloak: keycloakConfig,
};

1 个答案:

答案 0 :(得分:2)

这是Single Sign On协议的核心功能。但是,如果您不想共享会话,则可以在不同的领域中创建客户端。