Files
hipmi/src/middleware.back.txt
Bagasbanuna02 31124c5500 Fix: middleware
Deskripsi
- Fix middleware
- Fix metode login ( sekarang menggunakan api )
2024-12-02 16:24:03 +08:00

56 lines
1.4 KiB
Plaintext

import { NextResponse } from "next/server";
import type { NextRequest } from "next/server";
// This function can be marked `async` if using `await` inside
export const middleware = async (request: NextRequest) => {
console.log("middleware");
console.log(request.method);
console.log(request.url);
const origin = request.headers.get("origin");
console.log(origin);
const { pathname } = request.nextUrl;
// CROS
const corsRespone = handleCors(request);
if (corsRespone) {
return setCorsHeaders(
NextResponse.redirect(new URL("/login", request.url))
);
}
};
function handleCors(req: NextRequest): NextResponse | null {
if (req.method === "OPTIONS") {
return new NextResponse(null, {
status: 204,
headers: {
"Access-Control-Allow-Origin": "*",
"Access-Control-Allow-Methods": "GET, POST, PUT, DELETE, OPTIONS",
"Access-Control-Allow-Headers": "Content-Type, Authorization",
"Access-Control-Max-Age": "86400",
},
});
}
return null;
}
function setCorsHeaders(res: NextResponse): NextResponse {
res.headers.set("Access-Control-Allow-Origin", "*");
res.headers.set(
"Access-Control-Allow-Methods",
"GET, POST, PUT, DELETE, OPTIONS"
);
res.headers.set(
"Access-Control-Allow-Headers",
"Content-Type, Authorization"
);
return res;
}
export const config = {
matcher: ["/((?!_next|static|favicon.ico|manifest).*)"],
};