在Angular中使用Keycloak时,要确保使用正确的配置项,并正确配置Keycloak的设置。以下是一个示例:
import { BrowserModule } from '@angular/platform-browser';
import { NgModule } from '@angular/core';
import { FormsModule } from '@angular/forms';
import { AppComponent } from './app.component';
import { KeycloakAngularModule, KeycloakService } from 'keycloak-angular';
import { initializer } from './app-init';
@NgModule({
imports: [
BrowserModule,
FormsModule,
KeycloakAngularModule
],
declarations: [AppComponent],
providers: [
{
provide: KeycloakService,
useValue: initializer.keycloak
}
],
bootstrap: [AppComponent]
})
export class AppModule { }
在app-init.ts
中定义Keycloak初始化设置:
import { KeycloakService } from 'keycloak-angular';
export function initializer(keycloak: KeycloakService): () => Promise {
return (): Promise => {
return new Promise(async (resolve, reject) => {
try {
await keycloak.init({
config: {
url: 'http://localhost:8080/auth',
realm: 'myrealm',
clientId: 'my-app'
},
initOptions: {
onLoad: 'check-sso',
checkLoginIframe: false
}
});
resolve();
} catch (error) {
reject(error);
}
});
};
}
确保代码中的URL,实例名称以及客户端ID与Keycloak服务器上的配置匹配。如果所有设置正确,则应该能够在请求时正确地使用/token而不是/3p-cookies/step1.html。
上一篇:Angular-Keycloak默认不在我的HTTP请求中添加Bearer令牌
下一篇:Angular-Keycloak未捕获的错误(在promise中):TypeError:无法在不使用'new'的情况下调用类构造函数KeycloakAuthGuard。