Zum Hauptinhalt springen

Middleware

Analog unterstützt serverseitige Middleware, die verwendet werden kann, um Anfragen zu ändern, die Authentifizierung zu überprüfen, Weiterleitungen zu senden und vieles mehr.

Middleware einrichten

Eine Middleware wird automatisch registriert, wenn sie im Ordner src/server/middleware platziert wird.

src/
└── server/
└── middleware/
└── auth.ts

Eine Middleware wird mit der Funktion defineEventHandler definiert.

import { defineEventHandler, sendRedirect, setHeaders } from 'h3';

export default eventHandler((event) => {
if (event.node.req.originalUrl === '/checkout') {
console.log('event url', event.node.req.originalUrl);

setHeaders(event, {
'x-analog-checkout': 'true',
});
}
});
  • Eine Middleware sollte nur Anfragen ändern und nichts zurückgeben!
  • Eine Middleware wird in der Reihenfolge der definierten Dateinamen ausgeführt. Setze den Dateinamen eine Zahl voran, um eine bestimmte Reihenfolge zu erzwingen.

Filterung in Middleware

Eine Middleware kann durch Filterung nur auf bestimmte Routen angewendet werden.

export default defineEventHandler(async (event) => {
// Only execute for /admin routes
if (getRequestURL(event).pathname.startsWith('/admin')) {
const cookies = parseCookies(event);
const isLoggedIn = cookies['authToken'];

// check auth and redirect
if (!isLoggedIn) {
sendRedirect(event, '/login', 401);
}
}
});