import { Lucia } from "lucia"; import { PrismaAdapter } from "@lucia-auth/adapter-prisma"; import { prisma } from "./prisma"; const adapter = new PrismaAdapter(prisma.session, prisma.user); export const lucia = new Lucia(adapter, { sessionCookie: { // this sets cookies with super long expiration // since Next.js doesn't allow Lucia to extend cookie expiration when rendering pages expires: true, attributes: { // set to `true` when using HTTPS secure: process.env.NODE_ENV === "production", }, }, getUserAttributes: (attributes) => { return { // attributes has the type of DatabaseUserAttributes email: attributes.email, }; }, }); declare module "lucia" { interface Register { Lucia: typeof lucia; DatabaseUserAttributes: DatabaseUserAttributes; } } interface DatabaseUserAttributes { email: string; }