@@ -182,41 +182,42 @@ export async function handleApplication(scope: Scope): Promise<void> {
182182 return next ( request ) ;
183183 }
184184
185- // Get the provider for this OAuth session
186- const providerName = request . session . oauth . provider ;
187- let providerData = providers [ providerName ] ;
185+ // Get the provider config ID for this OAuth session
186+ // Use providerConfigId (new) or fall back to provider (old) for backwards compatibility
187+ const providerConfigId = request . session . oauth . providerConfigId || request . session . oauth . provider ;
188+ let providerData = providers [ providerConfigId ] ;
188189
189190 // If provider not found in registry, try to resolve via hook (dynamic providers)
190191 if ( ! providerData && hookManager ?. hasHook ( 'onResolveProvider' ) ) {
191192 try {
192- logger ?. debug ?.( `Provider "${ providerName } " not in registry, attempting dynamic resolution` ) ;
193+ logger ?. debug ?.( `Provider config "${ providerConfigId } " not in registry, attempting dynamic resolution` ) ;
193194
194- const hookConfig = await hookManager . callResolveProvider ( providerName , logger ) ;
195+ const hookConfig = await hookManager . callResolveProvider ( providerConfigId , logger ) ;
195196
196197 if ( hookConfig ) {
197198 // Hook resolved provider - build full config and register dynamically
198199 const { OAuthProvider } = await import ( './lib/OAuthProvider.ts' ) ;
199200 const { buildProviderConfig } = await import ( './lib/config.ts' ) ;
200201
201202 // Build full provider config (handles Okta/Azure/Auth0 domain configuration)
202- const config = buildProviderConfig ( hookConfig , providerName , pluginDefaults ) ;
203+ const config = buildProviderConfig ( hookConfig , providerConfigId , pluginDefaults ) ;
203204 const provider = new OAuthProvider ( config , logger ) ;
204205
205- providers [ providerName ] = {
206+ providers [ providerConfigId ] = {
206207 provider,
207208 config,
208209 } ;
209210
210- providerData = providers [ providerName ] ;
211- logger ?. info ?.( `Dynamically registered provider for session validation: ${ providerName } ` ) ;
211+ providerData = providers [ providerConfigId ] ;
212+ logger ?. info ?.( `Dynamically registered provider for session validation: ${ providerConfigId } ` ) ;
212213 }
213214 } catch ( error ) {
214- logger ?. error ?.( `Error resolving provider ${ providerName } for session:` , ( error as Error ) . message ) ;
215+ logger ?. error ?.( `Error resolving provider ${ providerConfigId } for session:` , ( error as Error ) . message ) ;
215216 }
216217 }
217218
218219 if ( ! providerData ) {
219- logger ?. warn ?.( `OAuth provider '${ providerName } ' not found, logging out user` ) ;
220+ logger ?. warn ?.( `OAuth provider config '${ providerConfigId } ' not found, logging out user` ) ;
220221 // Provider no longer exists - complete logout
221222 await clearOAuthSession ( request . session , logger ) ;
222223 return next ( request ) ;
@@ -229,7 +230,7 @@ export async function handleApplication(scope: Scope): Promise<void> {
229230 // Session is no longer valid (already cleaned up by validator)
230231 logger ?. debug ?.( `OAuth session invalidated: ${ validation . error } ` ) ;
231232 } else if ( validation . refreshed ) {
232- logger ?. debug ?.( `OAuth token auto-refreshed for ${ providerName } ` ) ;
233+ logger ?. debug ?.( `OAuth token auto-refreshed for ${ providerConfigId } ` ) ;
233234 }
234235
235236 // Continue with the request (session updated if refreshed)
0 commit comments