Я пытаюсь реализовать https://www.npmjs.com/package/keycloak-angular на своем сайте, чтобы мое внешнее приложение angular могло аутентифицировать пользователя с помощью Keycloak.
После ввода кода , Я все время получаю сообщение об ошибке:
ERROR TypeError: this.appInits[i] is not a function
at ApplicationInitStatus.runInitializers (core.es5.js?de3d:2807)
at eval (core.es5.js?de3d:4506)
Кто-нибудь знает, почему это может происходить? Я использую Angular 4.3.2 и keycloak- angular 7.2.0 и keycloak- js 8.0.2.
Вот большая часть моего app.module.ts:
import {NgModule, APP_INITIALIZER} from '@angular/core';
import { KeycloakService, KeycloakAngularModule } from 'keycloak-angular';
import { initializer } from './utils/app-init';
...
@NgModule({
imports: [
...
KeycloakAngularModule
],
declarations: [
...
],
providers: [
...
{
provide: APP_INITIALIZER,
useFactory: initializer,
multi: true,
deps: [KeycloakService],
useClass: OdpToastOptions
}
],
bootstrap: [JhiMainComponent]
})
export class UiAppModule {}
Вот мой app-init.ts:
export function initializer(keycloak: KeycloakService): () => Promise<any> {
keycloak.init({
config: {
url: 'https://keycloak.mydomain.com/auth',
realm: 'myrealm',
clientId: 'myclient',
},
initOptions: {
onLoad: 'login-required',
checkLoginIframe: false,
},
enableBearerInterceptor: true,
bearerExcludedUrls: ['/assets', '/clients/public'],
});
return (): Promise<any> => keycloak.init();
}