• 카테고리

    질문 & 답변
  • 세부 분야

    프론트엔드

  • 해결 여부

    미해결

next-auth로 다시 한번 질문을 올립니다...

24.05.09 11:43 작성 조회수 94

0

공지의 올려주신대로
auth.ts 를 수정하였으며 loginModal 의 redirect:true

export const {
  handlers: { GET, POST },
  auth,
  signIn,
} = NextAuth({
  pages: {
    signIn: "/i/flow/login",
    newUser: "/i/flow/signup",
  },
  callbacks: {
    // async signIn()
    // async authorized({ auth }) {
    //   if (!auth) {
    //     // 쿠키가 없으면 로그인 페이지로 돌리기
    //     return NextResponse.redirect("http://localhost:3000/i/flow/login");
    //   }
    //   return true;
    // },
  },

  providers: [
    CredentialsProvider({
      async authorize(credentials) {
        const authResponse = await fetch(
          `${process.env.NEXT_PUBLIC_BASE_URL}/api/login`,
// NEXT_PUBLIC_BASE_URL=http://localhost:9090
          {
            method: "POST",
            headers: {
              "Content-Type": "application/json",
            },
            body: JSON.stringify({
              id: credentials.username,
              password: credentials.password,
            }),
          }
        );

        // 여기 주목!!! 서버에서 에러가 발생할 때 그 에러 내용이 서버에 담겨 있을 겁니다.
        console.log(authResponse.status, authResponse.statusText);
        if (!authResponse.ok) {
          const credentialsSignin = new CredentialsSignin();
          if (authResponse.status === 404) {
            credentialsSignin.code = "no_user";
          } else if (authResponse.status === 401) {
            credentialsSignin.code = "wrong_password";
          }
          throw credentialsSignin;
        }

        const user = await authResponse.json();
        console.log("user", user);
        // id, name, image, email만 허용
        return {
          id: user.id,
          name: user.nickname,
          image: user.image,
        };
      },
    }),
  ],
});

아래와 같은 오류가 계속 해서 발생하고 있습니다.

TypeError: next_dist_server_web_exports_next_request__WEBPACK_IMPORTED_MODULE_0__ is not a constructor

 

pakage.json 의 버젼은 아래와 같이 사용하고 있고요

 "@auth/core": "^0.27.0",
 "next-auth": "^5.0.0-beta.16",

혹시 이 부분의 같은 에러가 나오신 분들 중 해결 하신 분들이 있을까요?

 

 

답변 1

답변을 작성해보세요.

0

인프런 AI 인턴님의 프로필

인프런 AI 인턴

2024.05.09

안녕하세요, 인프런 AI 인턴입니다.

jaeyong Kim님의 질문에 관해 next-auth 관련하여 유사한 상황에 마주친 다른 사용자들의 경험을 찾아본 결과, 아래의 링크가 도움이 될 수 있을 것 같습니다.

  • Next-auth 질문을 올려봅니다.

    • 이 질문에서는 next-auth 버전을 다운그레이드하여 해결한 사례가 보고되었습니다. 비록 질문자님의 경우와 동일한 에러 메시지(‘TypeError: next_dist_server_web_exports_next_requestWEBPACK_IMPORTED_MODULE_0 is not a constructor’)에 대한 직접적인 언급은 없었으나, 패키지 버전 문제로 인해 발생하는 오류 사례임을 알 수 있습니다. @auth/core 버전을 다운그레이드하여 해결한 경험이 공유되었기 때문에, 비슷한 문제로 고민 중인 경우 참고할 만합니다.
  • 개인프로젝트를 하던 와중에 next-auth 관련 질문입니다.

    • 이 질문과 답변 세션에서는 TypeError: next_dist_server_web_exports_next_request__WEBPACK_IMPORTED_MODULE_0__ is not a constructor와 직접적으로 관련된 오류를 겪고 있으며, 강사님은 업데이트를 권장하고 있습니다.

위 경우를 포함하여 여러 글을 검토한 결과, Next-auth와 관련된 버전 호환성 문제가 잦은 듯 보입니다. 사용하시는 @auth/corenext-auth의 버전을 확인하시고, 필요시 버전을 조정해보셔도 좋을 것 같습니다. 또한, 공식 문서나 다른 사용자들의 경험도 참고하시어 호환 가능한 버전으로의 변경을 고려해볼 수 있습니다.

저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.