import NextAuth, { type NextAuthOptions } from "next-auth";
import CredentialsProvider from "next-auth/providers/credentials";
// Prisma adapter for NextAuth, optional and can be removed
import { PrismaAdapter } from "@next-auth/prisma-adapter";
import { env } from "../../../env/server.mjs";
import { prisma } from "../../../server/db/client";
export const authOptions: NextAuthOptions = {
// Include user.id on session
callbacks: {
jwt: async ({ token, user }) => {
if (user) {
token.id = user.id;
}
return token;
},
session({ session, token }) {
if (token && session.user) {
session.user.id = token.id as string;
}
return session;
},
},
adapter: PrismaAdapter(prisma),
pages: {
signIn: "/login",
},
providers: [
CredentialsProvider({
name: "credentials",
credentials: {
email: { type: "email" },
password: { type: "password" },
},
async authorize(credentials, req) {
const user = await prisma.user.findFirst({
where: {
email: credentials?.email,
password: credentials?.password,
},
});
console.log(user);
if (user)
return {
id: user.id,
};
else return null;
},
}),
],
};
export default NextAuth(authOptions);
import NextAuth, { type NextAuthOptions } from "next-auth";
import CredentialsProvider from "next-auth/providers/credentials";
// Prisma adapter for NextAuth, optional and can be removed
import { PrismaAdapter } from "@next-auth/prisma-adapter";
import { env } from "../../../env/server.mjs";
import { prisma } from "../../../server/db/client";
export const authOptions: NextAuthOptions = {
// Include user.id on session
callbacks: {
jwt: async ({ token, user }) => {
if (user) {
token.id = user.id;
}
return token;
},
session({ session, token }) {
if (token && session.user) {
session.user.id = token.id as string;
}
return session;
},
},
adapter: PrismaAdapter(prisma),
pages: {
signIn: "/login",
},
providers: [
CredentialsProvider({
name: "credentials",
credentials: {
email: { type: "email" },
password: { type: "password" },
},
async authorize(credentials, req) {
const user = await prisma.user.findFirst({
where: {
email: credentials?.email,
password: credentials?.password,
},
});
console.log(user);
if (user)
return {
id: user.id,
};
else return null;
},
}),
],
};
export default NextAuth(authOptions);