nextauth file imported EmailProvider is not being used

Viewed 20

I am trying to use nextauth for authentication. I'm trying to import EmailProvider from nextauth/providers. when I use it in Nextauth providers object it does not refer to EmailProvider i've imported?

code:

import NextAuth from "next-auth/next";
import { EmailProvider } from "next-auth/providers";
import nodemailer from "nodemailer"
import { PrismaAdapter } from "@next-auth/prisma-adapter"
import { PrismaClient } from "@prisma/client";

const prisma = new PrismaClient()
export default NextAuth({
    providers: [
        EmailProvider({
            server: {
                host: process.env.NEXT_PUBLIC_EMAIL_SERVER_HOST,
                port: process.env.NEXT_PUBLIC_EMAIL_SERVER_PORT,
                auth: {
                    user: process.env.NEXT_PUBLIC_EMAIL_SERVER_USER,
                    pass: process.env.NEXT_PUBLIC_EMAIL_SERVER_PASSWORD,
                },
            },
            from: process.env.NEXT_PUBLIC_EMAIL_FROM,
            maxAge: 10 * 60,
        })
    ],
    adapter: PrismaAdapter(prisma)
})

error:

Module not found: Package path ./providers is not exported from package D:\nextautht\supa-vacation-start\supa-vacation-start\node_modules\next-auth (see exports field in D:\nextautht\supa-vacation-start\supa-vacation-start\node_modules\next-auth\package.json)
  1 | import NextAuth from "next-auth/next";
> 2 | import { EmailProvider } from "next-auth/providers";
  3 | import nodemailer from "nodemailer"
  4 | import { PrismaAdapter } from "@next-auth/prisma-adapter"
  5 | import { PrismaClient } from "@prisma/client";
1 Answers

EmailProvider is not being imported from next-auth/providers it works if we import it from next-auth/providers/email instead. I think this is because export in the nodemodules/nextauth/package.json exports providers in form of /providers/*.

Related