daphnis/lib/lucia.ts
2024-06-29 02:25:52 -04:00

38 lines
964 B
TypeScript

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