@@ -165,9 +165,46 @@ export default defineNuxtModule<ModuleOptions>({
165165 if ( baseUrl ) {
166166 ( options . providers [ provider ] as OidcProviderConfig ) . authorizationUrl = generateProviderUrl ( baseUrl as string , providerPresets [ provider ] . authorizationUrl ) ;
167167 ( options . providers [ provider ] as OidcProviderConfig ) . tokenUrl = generateProviderUrl ( baseUrl as string , providerPresets [ provider ] . tokenUrl ) ;
168+ ( options . providers [ provider ] as OidcProviderConfig ) . logoutUrl = generateProviderUrl ( baseUrl as string , providerPresets [ provider ] . logoutUrl ) ;
168169 ( options . providers [ provider ] as OidcProviderConfig ) . userInfoUrl = generateProviderUrl ( baseUrl as string , providerPresets [ provider ] . userInfoUrl )
169170 }
170171
172+ // Replace clientId in additionalAuthParameters
173+ if ( providerPresets [ provider ] . additionalAuthParameters ) {
174+ const entry = providerPresets [ provider ] . additionalAuthParameters as Record < string , string >
175+ Object . keys ( entry ) . forEach ( ( param ) => {
176+ if ( ( entry [ param ] as string ) . includes ( '{clientId}' ) ) {
177+ if ( ! ( options . providers [ provider ] as OidcProviderConfig ) . additionalAuthParameters )
178+ ( options . providers [ provider ] as OidcProviderConfig ) . additionalAuthParameters = { } ;
179+ ( options . providers [ provider ] as OidcProviderConfig ) . additionalAuthParameters ! [ param ] = entry [ param ] . replace ( '{clientId}' , ( options . providers [ provider ] as OidcProviderConfig ) . clientId || process . env [ `NUXT_OIDC_PROVIDERS_${ provider . toUpperCase ( ) } _CLIENT_ID` ] || '' )
180+ }
181+ } )
182+ }
183+
184+ // Replace clientId in additionalTokenParameters
185+ if ( providerPresets [ provider ] . additionalTokenParameters ) {
186+ const entry = providerPresets [ provider ] . additionalTokenParameters as Record < string , string >
187+ Object . keys ( entry ) . forEach ( ( param ) => {
188+ if ( ( entry [ param ] as string ) . includes ( '{clientId}' ) ) {
189+ if ( ! ( options . providers [ provider ] as OidcProviderConfig ) . additionalTokenParameters )
190+ ( options . providers [ provider ] as OidcProviderConfig ) . additionalTokenParameters = { } ;
191+ ( options . providers [ provider ] as OidcProviderConfig ) . additionalTokenParameters ! [ param ] = entry [ param ] . replace ( '{clientId}' , ( options . providers [ provider ] as OidcProviderConfig ) . clientId || process . env [ `NUXT_OIDC_PROVIDERS_${ provider . toUpperCase ( ) } _CLIENT_ID` ] || '' )
192+ }
193+ } )
194+ }
195+
196+ // Replace clientId in additionalLogoutParameters
197+ if ( providerPresets [ provider ] . additionalLogoutParameters ) {
198+ const entry = providerPresets [ provider ] . additionalLogoutParameters as Record < string , string >
199+ Object . keys ( entry ) . forEach ( ( param ) => {
200+ if ( ( entry [ param ] as string ) . includes ( '{clientId}' ) ) {
201+ if ( ! ( options . providers [ provider ] as OidcProviderConfig ) . additionalLogoutParameters )
202+ ( options . providers [ provider ] as OidcProviderConfig ) . additionalLogoutParameters = { } ;
203+ ( options . providers [ provider ] as OidcProviderConfig ) . additionalLogoutParameters ! [ param ] = entry [ param ] . replace ( '{clientId}' , ( options . providers [ provider ] as OidcProviderConfig ) . clientId || process . env [ `NUXT_OIDC_PROVIDERS_${ provider . toUpperCase ( ) } _CLIENT_ID` ] || '' )
204+ }
205+ } )
206+ }
207+
171208 // Add login handler
172209 addServerHandler ( {
173210 handler : resolve ( './runtime/server/handler/login.get' ) ,
0 commit comments