tenantpilot/lib/auth/utils.ts
2025-11-18 23:24:41 +01:00

51 lines
1.0 KiB
TypeScript

import { db } from "@/lib/db/index";
import { DrizzleAdapter } from "@auth/drizzle-adapter";
import { DefaultSession, getServerSession, NextAuthOptions } from "next-auth";
import { Adapter } from "next-auth/adapters";
import { redirect } from "next/navigation";
import { env } from "@/lib/env.mjs"
declare module "next-auth" {
interface Session {
user: DefaultSession["user"] & {
id: string;
};
}
}
export type AuthSession = {
session: {
user: {
id: string;
name?: string;
email?: string;
};
} | null;
};
export const authOptions: NextAuthOptions = {
adapter: DrizzleAdapter(db) as Adapter,
callbacks: {
session: ({ session, user }) => {
session.user.id = user.id;
return session;
},
},
providers: [
],
};
export const getUserAuth = async () => {
const session = await getServerSession(authOptions);
return { session } as AuthSession;
};
export const checkAuth = async () => {
const { session } = await getUserAuth();
if (!session) redirect("/api/auth/signin");
};