Skip to main content

# Authentication & Authorization with AI Assistance

Setting Up Auth.js v5 (NextAuth.js)

Auth.js v5 is the standard authentication library for Next.js. Install and configure:

npm install next-auth@beta @auth/prisma-adapter
// auth.ts (project root)
import NextAuth from "next-auth";
import GitHub from "next-auth/providers/github";
import Google from "next-auth/providers/google";
import { PrismaAdapter } from "@auth/prisma-adapter";
import { prisma } from "@/lib/db";

export const { handlers, auth, signIn, signOut } = NextAuth({
  adapter: PrismaAdapter(prisma),
  providers: [
    GitHub({
      clientId: process.env.GITHUB_CLIENT_ID!,
      clientSecret: process.env.GITHUB_CLIENT_SECRET!,
    }),
    Google({
      clientId: process.env.GOOGLE_CLIENT_ID!,
      clientSecret: process.env.GOOGLE_CLIENT_SECRET!,
    }),
  ],
  session: {
    strategy: "jwt", // or "database"
  },
  callbacks: {
    async session({ session, token }) {
      if (token.sub) {
        session.user.id = token.sub;
      }
      return session;
    },
  },
});
// app/api/auth/[...nextauth]/route.ts
import { handlers } from "@/auth";
export const { GET, POST } = handlers;

Unlock this lesson

Upgrade to Pro to access the full content

What you'll learn:

  • Implement authentication in Next.js using Auth.js (NextAuth.js v5)
  • Protect API routes and pages with session checks
  • Understand JWT vs. database session strategies and when to use each