File tree Expand file tree Collapse file tree 1 file changed +23
-4
lines changed
Expand file tree Collapse file tree 1 file changed +23
-4
lines changed Original file line number Diff line number Diff line change @@ -26,13 +26,32 @@ export const cors = initMiddleware(
2626 console . log ( "Wildcard origin match. Allowing all." ) ;
2727 return callback ( null , true ) ;
2828 }
29+
30+ // Check for exact match first
2931 if ( allowedOrigins . includes ( origin ) ) {
30- console . log ( "Origin allowed ." ) ;
32+ console . log ( "Exact origin match. Allowing ." ) ;
3133 return callback ( null , true ) ;
32- } else {
33- console . error ( `Origin ${ origin } not allowed by CORS` ) ;
34- return callback ( new Error ( `Origin ${ origin } not allowed by CORS` ) ) ;
3534 }
35+
36+ // Check for subdomain matches
37+ for ( const allowedOrigin of allowedOrigins ) {
38+ try {
39+ const allowedUrl = new URL ( allowedOrigin ) ;
40+ const requestUrl = new URL ( origin ) ;
41+
42+ // Check if the request origin is a subdomain of the allowed origin
43+ if ( requestUrl . hostname . endsWith ( '.' + allowedUrl . hostname ) ||
44+ requestUrl . hostname === allowedUrl . hostname ) {
45+ console . log ( `Subdomain match: ${ origin } matches allowed origin ${ allowedOrigin } ` ) ;
46+ return callback ( null , true ) ;
47+ }
48+ } catch ( error ) {
49+ console . warn ( `Invalid URL format for origin: ${ allowedOrigin } ` , error ) ;
50+ }
51+ }
52+
53+ console . error ( `Origin ${ origin } not allowed by CORS` ) ;
54+ return callback ( new Error ( `Origin ${ origin } not allowed by CORS` ) ) ;
3655 } ,
3756 } ) ,
3857) ;
You can’t perform that action at this time.
0 commit comments