About adding-auth
A skill that guides coding agents through adding Auth.js authentication to a Next.js app, from setup and provider configuration to route protection. It also covers optional database adapters for persistent sessions or user records.
Key features
- 01Install and configure Auth.js
- 02Set up GitHub and Google providers
- 03Create authentication route handlers
- 04Add sign-in and sign-out UI
- 05Protect routes with session checks
- 06Configure optional database adapters
Use cases
- 01Add login and sign-up to a Next.js app
- 02Enable GitHub or Google OAuth
- 03Restrict pages to authenticated sessions
- 04Persist sessions or user records with an adapter
Install
Copy the command and run it in a terminal.
npx skills add https:/ / github.com/ spencerpauly/ awesome-cursor-skills --skill adding-authAfter installing, type/adding-authin Claude Code to confirm it loaded.
Details
From the project READMEAdd Authentication (Auth.js)
Use this skill when the user asks to add authentication, login, sign-up, OAuth, or session management.
Steps
-
Install dependencies
npm install next-auth@beta -
Generate an auth secret
npx auth secretThis adds
AUTH_SECRETto.env.local. -
Create the auth config — create
auth.tsin the project root:import NextAuth from "next-auth"; import GitHub from "next-auth/providers/github"; import Google from "next-auth/providers/google"; export const { handlers, signIn, signOut, auth } = NextAuth({ providers: [GitHub, Google], }); -
Add the route handler — create
app/api/auth/[...nextauth]/route.ts:import { handlers } from "@/auth"; export const { GET, POST } = handlers; -
Add environment variables for each provider:
AUTH_SECRET=... AUTH_GITHUB_ID=... AUTH_GITHUB_SECRET=... AUTH_GOOGLE_ID=... AUTH_GOOGLE_SECRET=... -
Add sign-in/sign-out UI — create components that call the
signInandsignOutserver actions, or use<Link href="/api/auth/signin">. -
Protect routes — use the
auth()function in server components or middleware:import { auth } from "@/auth"; export default async function ProtectedPage() { const session = await auth(); if (!session) redirect("/api/auth/signin"); return <div>Welcome {session.user?.name}</div>; } -
Add database adapter (optional) — if the user needs persistent sessions or user records, install a database adapter (e.g.
@auth/drizzle-adapter,@auth/prisma-adapter) and configure it in the auth config.
Notes
- Auth.js v5 works with Next.js App Router and Server Actions natively.
- For Pages Router, use
getServerSessioningetServerSidePropsanduseSessionon the client. - Add
NEXTAUTH_URLfor production deployments. - Store minimal user data in the session; fetch full profiles from the database when needed.