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: