@mangadex-pub/nuxt-security
Version:
🛡️ Security Module for Nuxt based on HTTP Headers and Middleware
20 lines (19 loc) • 734 B
JavaScript
import { defineEventHandler, createError } from "h3";
import { getRouteRules } from "#imports";
export default defineEventHandler((event) => {
const routeRules = getRouteRules(event);
const allowedMethodsRestricter = routeRules.security.allowedMethodsRestricter;
if (allowedMethodsRestricter !== false) {
const allowedMethods = allowedMethodsRestricter.methods;
if (!allowedMethods.includes(event.node.req.method)) {
const methodNotAllowedError = {
statusCode: 405,
statusMessage: "Method not allowed"
};
if (routeRules.security.allowedMethodsRestricter.throwError === false) {
return methodNotAllowedError;
}
throw createError(methodNotAllowedError);
}
}
});