import { NextResponse } from "next/server";
import { getToken } from "next-auth/jwt";
import connectDB from "@/util/database";
export async function middleware(request) {
if (request.nextUrl.pathname.startsWith("/cart")) {
const session = await getToken({ req: request });
if (session == null) {
return NextResponse.redirect(new URL("/login", request.url));
}
}
if (request.nextUrl.pathname.startsWith("/mypage")) {
const session = await getToken({ req: request });
if (session == null) {
return NextResponse.redirect(new URL("/login", request.url));
}
}
if (request.nextUrl.pathname.startsWith("/admin")) {
const session = await getToken({ req: request });
const db = (await connectDB).db("abc");
const result = await db.collection("user").findOne({ email: session.user.email });
if (result.authority !== "admin") {
return NextResponse.redirect(new URL("/", request.url));
}
}
} db에 유저 권한을 user, admin으로 설정해놓고 admin에 해당하는 유저만 /admin페이지로 접근 가능하게하고싶은데
Server Error
Error: The edge runtime does not support Node.js 'stream' module. Learn More: https://nextjs.org/docs/messages/node-module-in-edge-runtime
이런 에러 발생하네여 middleware에서 하지말고 그냥 페이지에서 하면 되는데 어떻게해야하나용 아님 세션에 normal admin 이런거 권한 추가할수있나여