• 로그인
  • 장바구니에 상품이 없습니다.

home2 게시판 Next.js 게시판 middleware db접근

middleware db접근

2 글 보임 - 1 에서 2 까지 (총 2 중에서)
  • 글쓴이
  • #116451

    고은수
    참가자
    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 이런거 권한 추가할수있나여
    #116460

    codingapple
    키 마스터
    유저 document에다가 권한도 메모해놓고 
    nextauth 설정파일에 session: 이었나 거기서 권한도 집어넣어봅시다
2 글 보임 - 1 에서 2 까지 (총 2 중에서)
  • 답변은 로그인 후 가능합니다.

About

현재 월 700명 신규수강중입니다.

  (09:00~20:00) 빠른 상담은 카톡 플러스친구 코딩애플 (링크)
  admin@codingapple.com
  이용약관
ⓒ Codingapple, 강의 예제, 영상 복제 금지
top

© Codingapple, All rights reserved. 슈퍼로켓 에듀케이션 / 서울특별시 강동구 고덕로 19길 30 / 사업자등록번호 : 212-26-14752 온라인 교육학원업 / 통신판매업신고번호 : 제 2017-서울강동-0002 호 / 개인정보관리자 : 박종흠