我有两个使用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,
};
答案 0 :(得分:2)
这是Single Sign On
协议的核心功能。但是,如果您不想共享会话,则可以在不同的领域中创建客户端。