src/types/cloudflare-env.ts ```javascript interface CloudflareEnv { DB: D1Database; } ``` src/db/

src/types/cloudflare-env.ts
interface CloudflareEnv {
  DB: D1Database;
}


src/db/db-connection.ts
import { D1Database } from "@cloudflare/workers-types";
import { drizzle } from "drizzle-orm/d1";
import { getRequestContext } from "@cloudflare/next-on-pages";

export const db = drizzle(
  process.env.NODE_ENV === "development"
    ? getRequestContext().env.DB
    : (process.env as unknown as CloudflareEnv).DB,
);


src/auth.js
import NextAuth, { type DefaultSession } from "next-auth";
import AzureAD from "next-auth/providers/azure-ad";
import { NextResponse } from "next/server";
import { DrizzleAdapter } from "@auth/drizzle-adapter";
import { db } from "@/db/db-connection";

export const {
  handlers: { GET, POST },
  auth,
  signIn,
} = NextAuth({
  secret: process.env.NEXTAUTH_SECRET as string,
  trustHost: true,
  session: {
    strategy: "database",
  },
  adapter: DrizzleAdapter(db),
  providers: [
    //...provider stuff
  ],
  callbacks: {
    //...callback stuff
  },
});
Was this page helpful?