safe-action-better-auth — скилл для Claude Code: авторизация в safe
Скилл подключает Better Auth к next-safe-action: middleware сам достаёт сессию, режет неавторизованные запросы и отдаёт типизированный контекст.
npx skills add next-safe-action/skills --skill safe-action-better-auth -a claude-codeЧто делает safe-action-better-auth
Скилл нужен, когда в Next.js-проекте уже есть next-safe-action и вы добавляете к серверным действиям вход и проверку прав. Он показывает, как собрать клиент действий с middleware betterAuth(auth): тот вызывает auth.api.getSession() с заголовками из next/headers, а при отсутствии сессии дёргает unauthorized() из next/navigation. В контекст действия попадает { auth: { user, session } } — типы выводятся из вашего инстанса Better Auth, включая поля плагинов.
Внутри — разбор настройки по шагам: инстанс Better Auth с плагином nextCookies() последним в массиве, флаг authInterrupts: true в next.config.ts, отдельный клиент для авторизованных действий и пример самого действия с inputSchema. Есть раздел про кастомный authorize и типы BetterAuthContext, AuthorizeFn, BetterAuthOpts.
Два места, где легко споткнуться. Без nextCookies() сессия молча окажется пустой, когда действие пытается поставить куки, — это повод проверить порядок плагинов. Без флага authInterrupts вызов unauthorized() упадёт в рантайме. И не перезапрашивайте сессию внутри authorize: она уже пришла как authData.
Какие задачи решает
- закрыть серверные действия от неавторизованных запросов
- получить типизированные
userиsessionв контексте действия - настроить
nextCookies(), чтобы вход и регистрация ставили куки - добавить проверку роли или доступа к организации через
authorize - заменить ручной middleware авторизации на готовый адаптер
Примеры запросов агенту
- Добавь авторизацию в мои safe actions через Better Auth
- Настрой
betterAuth(auth)и типизированный контекст для действий - Сделай проверку роли админа в
authorizeдля этого действия
Как установить safe-action-better-auth
1Через Skills CLI (Vercel)
npx skills add next-safe-action/skills --skill safe-action-better-auth -a claude-code2Вручную: положить файлы
~/.claude/skills/safe-action-better-auth/SKILL.mdПапка скилла целиком; для одного проекта — .claude/skills/safe-action-better-auth/
1Через Skills CLI (Vercel)
npx skills add next-safe-action/skills --skill safe-action-better-auth -a codex2Вручную: положить файлы
.agents/skills/safe-action-better-auth/SKILL.mdДля всех проектов — ~/.agents/skills/
1Через Skills CLI (Vercel)
npx skills add next-safe-action/skills --skill safe-action-better-auth -a cursor2Вручную: положить файлы
.cursor/skills/safe-action-better-auth/SKILL.mdCursor читает и .agents/skills/, и .claude/skills/
1GitHub CLI
gh skill install next-safe-action/skills safe-action-better-auth2Вручную: положить файлы
.github/skills/safe-action-better-auth/SKILL.md1Через Skills CLI (Vercel)
npx skills add next-safe-action/skills --skill safe-action-better-auth -a gemini-cli2Командой платформы
gemini skills install https://github.com/next-safe-action/skills --path skills/safe-action-better-authВручную: положить файлы
.devin/skills/safe-action-better-auth/SKILL.mdСтарый путь .windsurf/skills/ тоже читается
Через Skills CLI (Vercel)
npx skills add next-safe-action/skills --skill safe-action-better-auth -a opencodeClaude.ai
Упакуйте папку в zip и загрузите в Settings → Capabilities → Skills
По шагам, с командами для каждой платформы: Как установить скилл в Claude Code: пять способов
Из того же набора2
Похожие
Рядом в теме «Бэкенд и API»
Всё по теме «Бэкенд и API» →Вопросы о safe-action-better-auth
Как установить safe-action-better-auth в Claude?
Выполните npx skills add next-safe-action/skills --skill safe-action-better-auth -a claude-code. Скилл окажется в ~/.claude/skills/safe-action-better-auth/SKILL.md.
Что делает safe-action-better-auth?
Показывает, как подключить Better Auth к next-safe-action: middleware достаёт сессию из заголовков запроса, блокирует неавторизованные вызовы и кладёт типизированный auth в контекст действия.
Что нужно настроить заранее?
Плагин nextCookies() последним в массиве плагинов Better Auth и флаг authInterrupts: true в next.config.ts. Без первого куки не выставятся, без второго unauthorized() упадёт в рантайме.