你好,我在 Angular 和 Keycloak 方面遇到了一些问题,因为这个函数中的
window.location.origin
,但在我遵循的教程中,他确实这样做了,而且它有效,请你帮我解决它!
错误是窗口未定义
function initializeKeycloak(keycloak: KeycloakService) {
return () =>
keycloak.init({
config: {
url: 'http://localhost:8080',
realm: 'zetta',
clientId: 'zetta-client'
},
initOptions: {
onLoad: 'check-sso',
silentCheckSsoRedirectUri:
//the problem is here
window.location.origin + '/assets/silent-check-sso.html'
}
});
}
@NgModule({
declarations: [
AppComponent,
SidebarComponent,
FormationsComponent,
],
imports: [
BrowserModule,
BrowserAnimationsModule,
AppRoutingModule,
HttpClientModule,
ReactiveFormsModule,
FormsModule,
RouterModule,
KeycloakAngularModule
],
providers: [
provideClientHydration(),
{
provide: APP_INITIALIZER,
useFactory: initializeKeycloak,
multi: true,
deps: [KeycloakService]
}
],
bootstrap: [AppComponent]
})
export class AppModule { }
这是app.module.ts
我不确定您的问题,请显示您收到的确切错误,但您可以使用
(window as any).location.origin
或 ts 文件顶部的 declare var window;
来解决它