Installation
npm install ontimize-web-ngx-keycloak --save
Usage
Import the Ontimize Keycloak module into your application
Import the OntimizeKeycloakModule
into the main module of your application.
import { OntimizeKeycloakModule } from 'ontimize-web-ngx-keycloak';
@NgModule({
imports: [
OntimizeKeycloakModule,
...
],
declarations: ...
providers: ...
})
export class AppModule { }
Replace Ontimize Web default authentication
Ontimize Web Keycloak provides an implementation of the service AuthService
from OntimizeWeb for working with keycloak. Provide the Keycloak implementaion of the authentication service using the injection token O_AUTH_SERVICE
for replacing the default authentication service by OKeycloakAuthService
.
import { O_AUTH_SERVICE } from 'ontimize-web-ngx';
import { OKeycloakAuthService, OntimizeKeycloakModule } from 'ontimize-web-ngx-keycloak';
@NgModule({
imports: [
OntimizeKeycloakModule,
...
],
declarations: ...
providers: [
{ provide: O_AUTH_SERVICE, useValue: OKeycloakAuthService }
]
})
export class AppModule { }
If you want to extend the functionality of the module, you can extend the OKeycloakAuthService
and provide your own service using the same injection token.
Provide the Keycloak configuration
Use the injection token O_KEYCLOAK_OPTIONS
for providing the configuration of the keycloak server you want to connect to.
import { O_AUTH_SERVICE } from 'ontimize-web-ngx';
import { KeycloakOptions, O_KEYCLOAK_OPTIONS, OKeycloakAuthService, OntimizeKeycloakModule } from 'ontimize-web-ngx-keycloak';
const keycloakOptions: KeycloakOptions = {
config: {
url: '<KEYCLOAK_SERVER_URL>',
realm: '<KEYCLOAK_REALM>',
clientId: '<CLIENT_ID>'
},
initOptions: {
onLoad: 'login-required'
}
};
@NgModule({
imports: [
OntimizeKeycloakModule,
...
],
declarations: ...
providers: [
{ provide: O_AUTH_SERVICE, useValue: OKeycloakAuthService },
{ provide: O_KEYCLOAK_OPTIONS, useValue: keycloakOptions }
]
})
export class AppModule { }