Cursor Skill

adding-auth

Add authentication to a web application using NextAuth.js (Auth.js), including OAuth providers, session management, and protected routes.

LLM Mart · 0 points · 21 views 0 listing impressions 0 install-command copies
Virus-scanned Reviewed automatically before listing.

Full trust report

Download spencerpauly-awesome-cursor-skills-resources_adding-auth-99cd265.zip · 1 KB
Part of spencerpauly/awesome-cursor-skills — 65 skills

Install

skills CLI npx skills add https://github.com/spencerpauly/awesome-cursor-skills/tree/main/resources/adding-auth
Claude Code claude plugin marketplace add https://llmmart.ai/marketplace.json && claude plugin install spencerpauly-awesome-cursor-skills@llmmart
Git git clone https://github.com/spencerpauly/awesome-cursor-skills.git

The skills CLI installs just this skill, for any of its supported agents. Claude Code installs the whole spencerpauly/awesome-cursor-skills collection as a plugin from our marketplace. Git is the plain clone.

Skill manifest

Add Authentication (Auth.js)

Use this skill when the user asks to add authentication, login, sign-up, OAuth, or session management.

Steps

  1. Install dependencies

    npm install next-auth@beta
    
  2. Generate an auth secret

    npx auth secret
    

    This adds AUTH_SECRET to .env.local.

  3. Create the auth config — create auth.ts in 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],
    });
    
  4. Add the route handler — create app/api/auth/[...nextauth]/route.ts:

    import { handlers } from "@/auth";
    export const { GET, POST } = handlers;
    
  5. Add environment variables for each provider:

    AUTH_SECRET=...
    AUTH_GITHUB_ID=...
    AUTH_GITHUB_SECRET=...
    AUTH_GOOGLE_ID=...
    AUTH_GOOGLE_SECRET=...
    
  6. Add sign-in/sign-out UI — create components that call the signIn and signOut server actions, or use <Link href="/api/auth/signin">.

  7. 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>;
    }
    
  8. 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 getServerSession in getServerSideProps and useSession on the client.
  • Add NEXTAUTH_URL for production deployments.
  • Store minimal user data in the session; fetch full profiles from the database when needed.
Files (awesome-cursor-skills)
  • SKILL.md 2.2 KB
    ---
    name: adding-auth
    description: Add authentication to a web application using NextAuth.js (Auth.js), including OAuth providers, session management, and protected routes.
    ---
    
    # Add Authentication (Auth.js)
    
    Use this skill when the user asks to add authentication, login, sign-up, OAuth, or session management.
    
    ## Steps
    
    1. **Install dependencies**
    
       ```bash
       npm install next-auth@beta
       ```
    
    2. **Generate an auth secret**
    
       ```bash
       npx auth secret
       ```
    
       This adds `AUTH_SECRET` to `.env.local`.
    
    3. **Create the auth config** — create `auth.ts` in the project root:
    
       ```ts
       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],
       });
       ```
    
    4. **Add the route handler** — create `app/api/auth/[...nextauth]/route.ts`:
    
       ```ts
       import { handlers } from "@/auth";
       export const { GET, POST } = handlers;
       ```
    
    5. **Add environment variables** for each provider:
    
       ```
       AUTH_SECRET=...
       AUTH_GITHUB_ID=...
       AUTH_GITHUB_SECRET=...
       AUTH_GOOGLE_ID=...
       AUTH_GOOGLE_SECRET=...
       ```
    
    6. **Add sign-in/sign-out UI** — create components that call the `signIn` and `signOut` server actions, or use `<Link href="/api/auth/signin">`.
    
    7. **Protect routes** — use the `auth()` function in server components or middleware:
    
       ```ts
       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>;
       }
       ```
    
    8. **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 `getServerSession` in `getServerSideProps` and `useSession` on the client.
    - Add `NEXTAUTH_URL` for production deployments.
    - Store minimal user data in the session; fetch full profiles from the database when needed.
    

Comments (0)

Sign in to join the conversation.

No comments yet.

Reviews (0)

No reviews yet.

Related