api-authentication · secondsky — скилл для Claude Code: JWT, OAuth 2.0, API-ключи
Скилл для ИИ-агента, который помогает писать аутентификацию в API: JWT, OAuth 2.0, API-ключи, сессии и защитные заголовки.
npx skills add secondsky/claude-skills --skill api-authentication -a claude-codeЧто делает api-authentication
Скилл добавляет агенту готовые шаблоны и правила для аутентификации в API. Внутри — таблица методов с областями применения, реализация JWT на Node.js с access- и refresh-токенами, middleware для проверки заголовка Authorization, набор требований безопасности и пример security-заголовков. Отдельный файл references/python-flask.md содержит вариант на Flask: JWT с ролевым доступом, интеграцию OAuth 2.0 через Authlib и аутентификацию по API-ключам с хешированием.
Скилл пригодится, когда агент пишет систему входа, подключает сторонний сервис или разбирается с ошибками в потоке аутентификации. Он же подскажет, как не наступить на типичные грабли: хранение паролей в открытом виде, слабые секреты JWT, игнорирование срока жизни токена, отключённый HTTPS в продакшене и логирование токенов.
Учтите: примеры на Node.js требуют пакет jsonwebtoken, а для Flask-варианта нужен Python с Authlib. Секреты скилл советует держать в переменных окружения — JWT_SECRET и REFRESH_SECRET в примере читаются именно оттуда, так что без них код не заработает.
Какие задачи решает
- сгенерировать пару access- и refresh-токенов для входа
- написать middleware, который проверяет заголовок
Authorization - подключить вход через Google по OAuth 2.0
- закрыть эндпоинты по ролям через декораторы
- выставить security-заголовки вроде
Strict-Transport-Security
Примеры запросов агенту
- Добавь в проект аутентификацию по JWT с access- и refresh-токенами
- Проверь мой middleware для заголовка
Authorizationна ошибки - Настрой вход через Google по OAuth 2.0 на Flask
Как установить api-authentication
1Через Skills CLI (Vercel)
npx skills add secondsky/claude-skills --skill api-authentication -a claude-code2Вручную: положить файлы
~/.claude/skills/api-authentication/SKILL.mdПапка скилла целиком; для одного проекта — .claude/skills/api-authentication/
1Через Skills CLI (Vercel)
npx skills add secondsky/claude-skills --skill api-authentication -a codex2Вручную: положить файлы
.agents/skills/api-authentication/SKILL.mdДля всех проектов — ~/.agents/skills/
1Через Skills CLI (Vercel)
npx skills add secondsky/claude-skills --skill api-authentication -a cursor2Вручную: положить файлы
.cursor/skills/api-authentication/SKILL.mdCursor читает и .agents/skills/, и .claude/skills/
1GitHub CLI
gh skill install secondsky/claude-skills api-authentication2Вручную: положить файлы
.github/skills/api-authentication/SKILL.md1Через Skills CLI (Vercel)
npx skills add secondsky/claude-skills --skill api-authentication -a gemini-cli2Командой платформы
gemini skills install https://github.com/secondsky/claude-skills --path plugins/api-authentication/skills/api-authenticationВручную: положить файлы
.devin/skills/api-authentication/SKILL.mdСтарый путь .windsurf/skills/ тоже читается
Через Skills CLI (Vercel)
npx skills add secondsky/claude-skills --skill api-authentication -a opencodeClaude.ai
Упакуйте папку в zip и загрузите в Settings → Capabilities → Skills
По шагам, с командами для каждой платформы: Как установить скилл в Claude Code: пять способов
Вопросы о api-authentication
Как установить api-authentication в Claude?
Выполните npx skills add secondsky/claude-skills --skill api-authentication -a claude-code. Скилл окажется в ~/.claude/skills/api-authentication/SKILL.md.
Что делает api-authentication?
Даёт агенту шаблоны и правила для аутентификации в API: JWT, OAuth 2.0, API-ключи, сессии, security-заголовки и список типичных ошибок.
Какие зависимости нужны для примеров?
Для кода на Node.js — пакет jsonwebtoken, для варианта на Flask — Python с Authlib. Секреты читаются из переменных окружения JWT_SECRET и REFRESH_SECRET.
Исходный текст
SKILL.md · MIT
---
name: api-authentication
description: Secure API authentication with JWT, OAuth 2.0, API keys. Use for authentication systems, third-party integrations, service-to-service communication, or encountering token management, security headers, auth flow errors.
license: MIT
---
# API Authentication
Implement secure authentication mechanisms for APIs using modern standards and best practices.
## Authentication Methods
| Method | Use Case | Security Level |
|--------|----------|----------------|
| JWT | Stateless auth, SPAs | High |
| OAuth 2.0 | Third-party integration | High |
| API Keys | Service-to-service | Medium |
| Session | Traditional web apps | High |
## JWT Implementation (Node.js)
```javascript
const jwt = require('jsonwebtoken');
const generateTokens = (user) => ({
accessToken: jwt.sign(
{ userId: user.id, role: user.role },
process.env.JWT_SECRET,
{ expiresIn: '15m' }
),
refreshToken: jwt.sign(
{ userId: user.id, type: 'refresh' },
process.env.REFRESH_SECRET,
{ expiresIn: '7d' }
)
});
const authMiddleware = (req, res, next) => {
const authHeader = req.headers.authorization;
// Validate authorization header format
if (!authHeader || !authHeader.startsWith('Bearer ')) {
return res.status(401).json({ error: 'Malformed authorization header' });
}
const parts = authHeader.split(' ');
if (parts.length !== 2) {
return res.status(401).json({ error: 'Malformed authorization header' });
}
const token = parts[1];
if (!token) {
return res.status(401).json({ error: 'No token provided' });
}
try {
req.user = jwt.verify(token, process.env.JWT_SECRET);
next();
} catch (err) {
res.status(401).json({ error: 'Invalid token' });
}
};
```
## Security Requirements
- Always use HTTPS
- Store tokens in HttpOnly cookies (not localStorage)
- Hash passwords with bcrypt (cost factor 12+)
- Implement rate limiting on auth endpoints
- Rotate secrets regularly
- Never transmit tokens in URLs
## Security Headers
```javascript
app.use((req, res, next) => {
res.setHeader('X-Content-Type-Options', 'nosniff');
res.setHeader('X-Frame-Options', 'DENY');
res.setHeader('Strict-Transport-Security', 'max-age=31536000');
next();
});
```
## Additional Implementations
See [references/python-flask.md](references/python-flask.md) for:
- Flask JWT with role-based access control decorators
- OAuth 2.0 Google integration with Authlib
- API key authentication with secure hashing
## Common Mistakes to Avoid
- Storing plain-text passwords
- Using weak JWT secrets
- Ignoring token expiration
- Disabling HTTPS in production
- Logging sensitive tokens
© secondsky · MIT · secondsky/claude-skills
Похожие скиллы
Всё по теме «Безопасность» →Сначала — api-authentication от других авторов.