nuxt-security
Version:
🛡️ Security Module for Nuxt based on HTTP Headers and Middleware
20 lines (19 loc) • 749 B
JavaScript
import { defineEventHandler, createError } from "h3";
import { resolveSecurityRules } from "../../nitro/context/index.js";
export default defineEventHandler((event) => {
const rules = resolveSecurityRules(event);
if (rules.enabled && rules.allowedMethodsRestricter) {
const { allowedMethodsRestricter } = rules;
const allowedMethods = allowedMethodsRestricter.methods;
if (allowedMethods !== "*" && !allowedMethods.includes(event.node.req.method)) {
const methodNotAllowedError = {
statusCode: 405,
statusMessage: "Method not allowed"
};
if (allowedMethodsRestricter.throwError === false) {
return methodNotAllowedError;
}
throw createError(methodNotAllowedError);
}
}
});