Back to roadmaps authjs Course

Auth.js Callbacks and Configuration Cheat Sheet

This quick reference guide summarizes the most common patterns and configurations in Auth.js (v5).


1. Environment Configurations Reference

# Generate using: npx auth secret
AUTH_SECRET="your-32-character-secret-key"

# Client provider client keys
AUTH_GITHUB_ID="github-client-id"
AUTH_GITHUB_SECRET="github-client-secret"

2. Core Config Template with JWT Callbacks

// auth.ts
import NextAuth from "next-auth";
import GitHub from "next-auth/providers/github";

export const { handlers, signIn, signOut, auth } = NextAuth({
  providers: [GitHub],
  callbacks: {
    // 1. Process custom data injection during token creation
    async jwt({ token, user }) {
      if (user) {
        token.role = "user"; // Define default authorization claim
      }
      return token;
    },
    // 2. Map token attributes to client session claims
    async session({ session, token }) {
      if (session.user) {
        session.user.role = token.role as string;
      }
      return session;
    },
  },
});

3. Session Retrieval APIs

// A. Server Component or Server Action (Secure read)
import { auth } from "./auth";
const session = await auth();
const email = session?.user?.email;

// B. Client Component React Hook (Next-Auth context)
import { useSession } from "next-auth/react";
const { data: session, status } = useSession();

4. Prisma Adapter Sync Setup

import NextAuth from "next-auth";
import { PrismaAdapter } from "@auth/prisma-adapter";
import { prisma } from "./lib/prisma";

export const { handlers } = NextAuth({
  adapter: PrismaAdapter(prisma),
  session: { strategy: "database" },
  providers: [],
});
Published on Last updated: