import NextAuth from "next-auth" import GitHub from "next-auth/providers/github" import { PrismaAdapter } from "@auth/prisma-adapter" import { prisma } from "@/prisma"; import type { Provider } from "next-auth/providers" import { AUTH_GITHUB_CLIENT_ID, AUTH_GITHUB_CLIENT_SECRET, AUTH_SECRET } from "./lib/environment"; const providers: Provider[] = [ GitHub({ clientId: AUTH_GITHUB_CLIENT_ID, clientSecret: AUTH_GITHUB_CLIENT_SECRET, }), ]; // @see: https://authjs.dev/guides/pages/signin export const providerMap = providers .map((provider) => { if (typeof provider === "function") { const providerData = provider() return { id: providerData.id, name: providerData.name } } else { return { id: provider.id, name: provider.name } } }) .filter((provider) => provider.id !== "credentials"); export const { handlers, signIn, signOut, auth } = NextAuth({ secret: AUTH_SECRET, adapter: PrismaAdapter(prisma), session: { strategy: "jwt", }, providers: providers, pages: { signIn: "/login" } })