agentsclimarketplace

Nextauth

Skill G1Joshi/Agent-Skills/skills/security/nextauth

NextAuth.js authentication for Next.js. Use for Next.js auth.From its SKILL.md

Install
npx -y skills add G1Joshi/Agent-Skills --skill nextauth

Assembled from the repository path, not quoted from the project. Check it against their README if it does not work.

One thing to look at

  • 12 stars12 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.

SKILL.md

2.2 KB, 509 tokens by cl100k_base, as published. Nobody here has run it

NextAuth.js (Auth.js)

NextAuth (evolving into Auth.js) is a complete open-source authentication solution. It is designed to work with any OAuth service, supports email/passwordless, and owns your data (Database Adapters).

When to Use

  • Data Ownership: You want to own the User/Session data in your own Database (Postgres, Prisma) rather than an external provider.
  • Cost: It's free/open-source. No MAU limits.
  • Flexibility: You need custom providers or complex session strategies.

Quick Start (Next.js App Router - v5 Beta)

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

export const { handlers, auth, signIn, signOut } = NextAuth({
  providers: [GitHub],
});

// app/api/auth/[...nextauth]/route.ts
import { handlers } from "@/auth";
export const { GET, POST } = handlers;

Core Concepts

Database Adapters

NextAuth can persist users and sessions to your DB using adapters (Prisma, Drizzle, MongoDB).

Strategies

  • JWT (Stateless): Default. Session data stored in an encrypted cookie. Good for scale.
  • Database (Stateful): Session stored in DB. Good if you need to revoke sessions server-side immediately.

Best Practices (2025)

Do:

  • Use the Prisma Adapter (or Drizzle) if you have a database.
  • Set a strong AUTH_SECRET (auto-generated in Vercel, manual elsewhere).
  • Use Middleware to protect routes at the edge.

Don't:

  • Don't store large objects in the Session (The JWT cookie has a 4kb limit).
  • Don't commit provider secrets (Client ID/Secret) to Git.

Troubleshooting

ErrorCauseSolution
JWEDecryptionFailedWrong AUTH_SECRET.Ensure AUTH_SECRET is set and consistent.
OAuthCallbackErrorProvider config mismatch.Check Authorised Redirect URIs in GitHub/Google console.

References

What ships with it

Read from the repository

Just SKILL.md. No reference files, no scripts.

Keep looking

Skills are one crate of 325,949. Ordering is by how many stacks a row turns up in, so the top of any crate is what has actually been picked rather than what has the most stars.