Просмотр исходного кода

fix(core): Correctly apply global and per-route cookie middlewares (#2911)

Gautier Darchen 1 год назад
Родитель
Сommit
2d2e51876e
2 измененных файлов с 9 добавлено и 14 удалено
  1. 0 4
      packages/core/src/app.module.ts
  2. 9 10
      packages/core/src/bootstrap.ts

+ 0 - 4
packages/core/src/app.module.ts

@@ -56,10 +56,6 @@ export class AppModule implements NestModule, OnApplicationShutdown {
                 handler: cookieSession({ ...cookieOptions, name: shopApiCookieName }),
                 route: shopApiPath,
             });
-            allMiddleware.push({
-                handler: cookieSession({ ...cookieOptions, name: shopApiCookieName }),
-                route: '/',
-            });
         }
 
         const consumableMiddlewares = allMiddleware.filter(mid => !mid.beforeListen);

+ 9 - 10
packages/core/src/bootstrap.ts

@@ -412,14 +412,13 @@ export function configureSessionCookies(
 ): void {
     const { cookieOptions } = userConfig.authOptions;
 
-    // If the Admin API and Shop API should have the same cookie name
-    // Else, the specific cookie middlewares are handled in the 'AppModule#configure' method
-    if (typeof cookieOptions?.name === 'string' || cookieOptions?.name === undefined) {
-        app.use(
-            cookieSession({
-                ...cookieOptions,
-                name: cookieOptions?.name ?? DEFAULT_COOKIE_NAME,
-            }),
-        );
-    }
+    // Globally set the cookie session middleware
+    const cookieName =
+        typeof cookieOptions?.name !== 'string' ? cookieOptions.name?.shop : cookieOptions.name;
+    app.use(
+        cookieSession({
+            ...cookieOptions,
+            name: cookieName ?? DEFAULT_COOKIE_NAME,
+        }),
+    );
 }