adding-auth — скилл для Claude Code: вход в Next.js через Auth.js
Скилл проводит агента по шагам добавления аутентификации в веб-приложение на NextAuth.js: провайдеры OAuth, сессии и защищённые маршруты.
npx skills add spencerpauly/awesome-cursor-skills --skill adding-auth -a claude-codeЧто делает adding-auth
Скилл включается, когда вы просите агента добавить вход, регистрацию, OAuth или управление сессиями. Дальше он ведёт работу по шагам: ставит next-auth@beta, генерирует секрет командой npx auth secret и записывает AUTH_SECRET в .env.local, создаёт auth.ts в корне проекта с провайдерами GitHub и Google, добавляет обработчик маршрута в app/api/auth/[...nextauth]/route.ts.
Отдельным шагом идёт интерфейс: компоненты вызывают серверные действия signIn и signOut, либо ссылка ведёт на /api/auth/signin. Защита маршрутов строится на функции auth() — в серверных компонентах или в middleware; если сессии нет, страница перенаправляет на вход. Для постоянных сессий и записей о пользователях скилл предлагает адаптер базы данных, например @auth/drizzle-adapter или @auth/prisma-adapter.
Заранее понадобятся ключи каждого провайдера: AUTH_GITHUB_ID, AUTH_GITHUB_SECRET, AUTH_GOOGLE_ID, AUTH_GOOGLE_SECRET. Для продакшена скилл напоминает добавить NEXTAUTH_URL — без него вход на боевом домене сломается. Auth.js v5 рассчитан на App Router и серверные действия; в Pages Router схема другая, там нужны getServerSession в getServerSideProps и useSession на клиенте.
Какие задачи решает
- добавить вход через GitHub и Google в приложение на Next.js
- сгенерировать
AUTH_SECRETи прописать переменные окружения - закрыть страницу от гостей через
auth()в серверном компоненте - подключить адаптер базы данных для постоянных сессий
- перенести аутентификацию на Pages Router через
getServerSession
Примеры запросов агенту
- добавь аутентификацию в проект через Auth.js
- настрой вход через GitHub и Google и защити страницу /dashboard
- сделай регистрацию и выход, сессию храни в базе
Как установить adding-auth
1Через Skills CLI (Vercel)
npx skills add spencerpauly/awesome-cursor-skills --skill adding-auth -a claude-code2Вручную: положить файлы
~/.claude/skills/adding-auth/SKILL.mdПапка скилла целиком; для одного проекта — .claude/skills/adding-auth/
1Через Skills CLI (Vercel)
npx skills add spencerpauly/awesome-cursor-skills --skill adding-auth -a codex2Вручную: положить файлы
.agents/skills/adding-auth/SKILL.mdДля всех проектов — ~/.agents/skills/
1Через Skills CLI (Vercel)
npx skills add spencerpauly/awesome-cursor-skills --skill adding-auth -a cursor2Вручную: положить файлы
.cursor/skills/adding-auth/SKILL.mdCursor читает и .agents/skills/, и .claude/skills/
1GitHub CLI
gh skill install spencerpauly/awesome-cursor-skills adding-auth2Вручную: положить файлы
.github/skills/adding-auth/SKILL.md1Через Skills CLI (Vercel)
npx skills add spencerpauly/awesome-cursor-skills --skill adding-auth -a gemini-cli2Командой платформы
gemini skills install https://github.com/spencerpauly/awesome-cursor-skills --path resources/adding-authВручную: положить файлы
.devin/skills/adding-auth/SKILL.mdСтарый путь .windsurf/skills/ тоже читается
Через Skills CLI (Vercel)
npx skills add spencerpauly/awesome-cursor-skills --skill adding-auth -a opencodeClaude.ai
Упакуйте папку в zip и загрузите в Settings → Capabilities → Skills
По шагам, с командами для каждой платформы: Как установить скилл в Claude Code: пять способов
Из того же набора59
Похожие
Рядом в теме «Бэкенд и API»
Всё по теме «Бэкенд и API» →Вопросы о adding-auth
Как установить adding-auth в Claude?
Выполните npx skills add spencerpauly/awesome-cursor-skills --skill adding-auth -a claude-code. Файл скилла появится по пути ~/.claude/skills/adding-auth/SKILL.md.
Что делает adding-auth?
Проводит агента по шагам добавления аутентификации на NextAuth.js: установка пакета, генерация секрета, конфиг auth.ts, обработчик маршрута, UI входа и защита маршрутов.
Сработает ли скилл в Pages Router?
Да, но схема другая: вместо auth() в серверных компонентах нужны getServerSession в getServerSideProps и useSession на клиенте.
Исходный текст
SKILL.md · CC0-1.0
---
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.
© spencerpauly · CC0-1.0 · spencerpauly/awesome-cursor-skills