1- import { APP_INITIALIZER , NgModule } from '@angular/core' ;
1+ import { NgModule } from '@angular/core' ;
22import { BrowserModule } from '@angular/platform-browser' ;
3- import { KeycloakAngularModule , KeycloakService } from 'keycloak-angular' ;
3+ import {
4+ createInterceptorCondition ,
5+ INCLUDE_BEARER_TOKEN_INTERCEPTOR_CONFIG ,
6+ IncludeBearerTokenCondition ,
7+ includeBearerTokenInterceptor ,
8+ provideKeycloak ,
9+ } from 'keycloak-angular' ;
410import { AppRoutingModule } from './app-routing.module' ;
511import { AppComponent } from './app.component' ;
612import { environment } from '../environments/environment' ;
713import { SharedModule } from './shared/modules/shared.module' ;
814import { CommonLayoutComponent } from './shared/layouts/common-layout.component' ;
9- import { HttpClientModule } from '@angular/common/http' ;
15+ import { provideHttpClient , withInterceptors } from '@angular/common/http' ;
1016import { HomeComponent } from './home/home.component' ;
1117import { FontAwesomeModule } from '@fortawesome/angular-fontawesome' ;
1218import { BrowserAnimationsModule } from '@angular/platform-browser/animations' ;
@@ -34,21 +40,15 @@ import { HomeChangelogComponent } from './home/components/changelog/home-changel
3440import { HomeFifaComponent } from './home/components/fifa/home-fifa.component' ;
3541import { HomeLolComponent } from './home/components/lol/home-lol.component' ;
3642
37- function initializeKeycloak ( keycloak : KeycloakService ) {
38- return ( ) =>
39- keycloak . init ( {
40- config : {
41- url : environment . keycloak . url ,
42- realm : environment . keycloak . realm ,
43- clientId : environment . keycloak . clientId ,
44- } ,
45- initOptions : {
46- onLoad : 'check-sso' ,
47- silentCheckSsoRedirectUri :
48- window . location . origin + '/assets/silent-check-sso.html' ,
49- } ,
50- } ) ;
51- }
43+ const devCondition = createInterceptorCondition < IncludeBearerTokenCondition > ( {
44+ urlPattern : / ^ ( h t t p : \/ \/ l o c a l h o s t : 5 1 8 4 ) ( \/ .* ) ? $ / i,
45+ bearerPrefix : 'Bearer' ,
46+ } ) ;
47+
48+ const prodCondition = createInterceptorCondition < IncludeBearerTokenCondition > ( {
49+ urlPattern : / ^ ( h t t p s : \/ \/ g a m e o n - a p i .v a l e n t i n v i r o t .f r ) ( \/ .* ) ? $ / i,
50+ bearerPrefix : 'Bearer' ,
51+ } ) ;
5252
5353@NgModule ( {
5454 declarations : [
@@ -75,25 +75,33 @@ function initializeKeycloak(keycloak: KeycloakService) {
7575 imports : [
7676 BrowserModule ,
7777 AppRoutingModule ,
78- KeycloakAngularModule ,
7978 SharedModule ,
8079 FontAwesomeModule ,
8180 BrowserAnimationsModule ,
8281 StoreModule . forRoot ( {
8382 player : playerReducer ,
8483 globalStats : playerStatsReducer ,
8584 } ) ,
86- HttpClientModule ,
8785 ClipboardModule ,
8886 AdminModule ,
8987 ] ,
9088 providers : [
89+ provideKeycloak ( {
90+ config : {
91+ url : environment . keycloak . url ,
92+ realm : environment . keycloak . realm ,
93+ clientId : environment . keycloak . clientId ,
94+ } ,
95+ initOptions : {
96+ onLoad : 'check-sso' ,
97+ silentCheckSsoRedirectUri : `${ window . location . origin } /assets/silent-check-sso.html` ,
98+ } ,
99+ } ) ,
91100 {
92- provide : APP_INITIALIZER ,
93- useFactory : initializeKeycloak ,
94- multi : true ,
95- deps : [ KeycloakService ] ,
101+ provide : INCLUDE_BEARER_TOKEN_INTERCEPTOR_CONFIG ,
102+ useValue : [ devCondition , prodCondition ] ,
96103 } ,
104+ provideHttpClient ( withInterceptors ( [ includeBearerTokenInterceptor ] ) ) ,
97105 ] ,
98106 bootstrap : [ AppComponent ] ,
99107} )
0 commit comments