我试图实现keycloak-angular,但是我不能在我的http请求中默认添加不记名令牌。
“角形密钥罩”:“9.1.0”“密钥隐藏-js”:“16.0.0”“Angular ”:“第13.0.2条”
function initializeKeycloak(keycloak: KeycloakService) {
return async () =>
await keycloak.init({
config: {
url: 'https://127.0.0.1:8443/auth',
realm: '*****',
clientId: '****',
},
initOptions: {
onLoad: 'login-required',
checkLoginIframe: false,
},
loadUserProfileAtStartUp: true,
enableBearerInterceptor: true,
bearerExcludedUrls: [],
bearerPrefix:'Bearer '
});
}
@NgModule({
declarations: [
AppComponent,
],
imports: [
CoreModule,
BrowserModule,
KeycloakAngularModule,
AppRoutingModule
],
providers: [
{ provide: LOCALE_ID, useValue: 'it' },
{
provide: APP_INITIALIZER,
useFactory: initializeKeycloak,
multi: true,
deps: [KeycloakService]
},
],
bootstrap: [AppComponent]
})
2条答案
按热度按时间ia2d9nvy1#
您必须使用HttpInterceptor在每个API调用处添加自定义头。
实现拦截功能:
2q5ifsrm2#
在我的例子中,没有使用HttpClient来执行请求。
相反,fetch已被直接使用,并且未被angular拦截。
因此,如果HttpInterceptor已经就位,但它不起作用,请确保使用HttpClient来处理请求。
我将
fetch(...)
更改为http.get(...)
,并且成功了