К основному содержанию
скилл CX Codex

session-management · secondsky — скилл для Claude Code: JWT, Redis и сессии

Скилл для ИИ-кодинга, который помогает собрать вход в аккаунт: JWT-токены, хранение сессий в Redis, обновление токена и настройка cookie.

Установить в Claude Code · Через Skills CLI (Vercel) Все способы и платформы ↓
npx skills add secondsky/claude-skills --skill session-management -a claude-code
Открыть на GitHub

Что делает session-management

Скилл описывает, как устроить сессии на токенах. Внутри — примеры на JavaScript: генерация пары access и refresh токенов через jsonwebtoken, класс SessionStore поверх клиента redis с методами создания сессии и сброса всех сессий пользователя, конфигурация cookie с флагами httpOnly, secure и sameSite, а ещё обработчик POST /auth/refresh, который проверяет тип токена и выдаёт новую пару.

Отдельным блоком идут требования безопасности: работать только по HTTPS, ставить httpOnly и sameSite, ограничивать срок жизни токенов, держать свои секреты для каждого окружения и проверять подпись на каждом запросе. Там же список того, чего делать нельзя: класть чувствительные данные в токен, передавать токен через параметры URL, брать слабый или общий секрет, пропускать проверку подписи.

Код опирается на переменные окружения JWT_SECRET, REFRESH_SECRET и SESSION_SECRET. Если их не задать, примеры не заработают — это повод проверить конфигурацию до того, как код уйдёт на прод. Скилл даёт шаблоны, а не готовую библиотеку: вставлять их придётся в свой проект и подгонять под свою схему данных.

Какие задачи решает

  • сгенерировать пару access и refresh токенов для пользователя
  • хранить активные сессии в Redis и сбрасывать их все разом
  • настроить cookie с httpOnly, secure и sameSite
  • сделать эндпоинт обновления токена с проверкой его типа
  • закрыть типовые дыры вроде передачи токена через URL

Примеры запросов агенту

  • добавь в проект вход по JWT: access на час, refresh на семь дней
  • сделай хранение сессий в Redis с методом сброса всех сессий пользователя
  • проверь настройки cookie для сессии: httpOnly, secure, sameSite

Как установить session-management

1Через Skills CLI (Vercel)

npx skills add secondsky/claude-skills --skill session-management -a claude-code

2Вручную: положить файлы

~/.claude/skills/session-management/SKILL.md

Папка скилла целиком; для одного проекта — .claude/skills/session-management/

По шагам, с командами для каждой платформы: Как установить скилл в Claude Code: пять способов

Из того же набора89

bun-docker Скилл подсказывает, как собрать Dockerfile и docker-compose для приложения на Bun: официальные образы oven/bun, многоэтапные сборки, hot reload. CX Codex +1 408установок nuxt-ui-v4 Скилл для сборки интерфейсов на Nuxt UI v4: 125+ компонентов, Tailwind v4, тёмная тема. Пригодится, когда агент пишет дашборд, форму или чат на Nuxt. CX Codex +1 410установок api-gateway-configuration Скилл помогает настроить маршрутизацию, аутентификацию и лимиты запросов в API-шлюзе микросервисной архитектуры. CX Codex +1 408установок health-check-endpoints Скилл для ИИ-кодинга, который помогает настроить liveness, readiness и startup-пробы, а также проверки зависимостей вроде базы и Redis. CX Codex +1 406установок bun-test-coverage Скилл для работы с покрытием тестов в Bun: флаг --coverage, отчёты lcov, пороги и запуск в CI. Пригодится, когда тесты уже есть, а процент покрытия надо видеть и держать. CX Codex +1 403установок bun-workers Скилл подсказывает агенту, как запускать Web Workers и worker_threads в Bun: параллельные задачи, пул воркеров, обмен сообщениями. CX Codex +1 402установок dependency-upgrade Помогает обновлять зависимости без риска: настраивает карантин для новых версий, блокирует postinstall-скрипты и ведёт обновления поэтапно. CX Codex +1 404установок nuxt-server Скилл для серверной разработки на Nuxt 4 с Nitro: API-роуты, middleware, базы данных и WebSocket. Пригодится, когда бэкенд живёт внутри Nuxt-проекта. CX Codex +1 401установок

Другие версии session-management

Похожие

auth-implementation-patterns Seth Hobson Скилл для проектирования аутентификации и авторизации: JWT, OAuth2, сессии, роли. Пригодится, когда пишете вход в систему или чините дыру в доступе. CX Codex 19 388установок jwt-encode jsonwebtoken Собирает и подписывает JSON Web Tokens для тестов и разработки: HMAC, RSA, ECDSA. Пригодится, когда нужен валидный токен прямо в сессии агента. CX Codex +1 606установок authentication-setup akillness Помогает выбрать способ аутентификации для веб-приложения или API и разложить её по границам: что берёт провайдер, что остаётся в приложении. CX Codex +1 368установок cookie-debugging ChromeDevTools Скилл для инспекции кук, сессий и ошибок аутентификации через Chrome DevTools MCP. Диагностирует 401/403, редиректы авторизации, проблемы с Set-Cookie и проверяет соответствие cookie consent. CX Codex +1 870установок browser-auth-flow ruvnet Прогоняет вход на вашем сайте один раз и ищет утечки в редиректах, отсутствие CSRF-токена, слабые сессионные cookie и ошибки OAuth. Итог — findings.md с вердиктом. CX Codex +1 689установок insforge-integrations InsForge Скилл ведёт агента по подключению чужого провайдера аутентификации к InsForge и по приёму оплаты за HTTP-эндпоинт через x402. CX Codex +1 55 900установок

Рядом в теме «Безопасность»

Всё по теме «Безопасность» →

Вопросы о session-management

Как установить session-management в Claude?

Выполните npx skills add secondsky/claude-skills --skill session-management -a claude-code. После этого файл скилла окажется в ~/.claude/skills/session-management/SKILL.md.

Что делает session-management?

Показывает, как собрать сессии на JWT: генерация токенов, хранение в Redis, обновление по refresh-токену и настройка cookie. Плюс список требований безопасности и типовых ошибок.

Что нужно для работы примеров из скилла?

Пакеты jsonwebtoken и redis и переменные окружения JWT_SECRET, REFRESH_SECRET, SESSION_SECRET. Без секретов код из примеров не запустится.

Исходный текст

SKILL.md · MIT
---
name: session-management
description: Implements secure session management with JWT tokens, Redis storage, refresh flows, and proper cookie configuration. Use when building authentication systems, managing user sessions, or implementing secure logout functionality.
license: MIT
---

# Session Management

Implement secure session management with proper token handling and storage.

## Token-Based Sessions

```javascript
const jwt = require('jsonwebtoken');

function generateTokens(user) {
  const accessToken = jwt.sign(
    { userId: user.id, role: user.role, type: 'access' },
    process.env.JWT_SECRET,
    { expiresIn: '1h' }
  );

  const refreshToken = jwt.sign(
    { userId: user.id, type: 'refresh' },
    process.env.REFRESH_SECRET,
    { expiresIn: '7d' }
  );

  return { accessToken, refreshToken };
}
```

## Redis Session Storage

```javascript
const redis = require('redis');
const client = redis.createClient();

class SessionStore {
  async create(userId, sessionData) {
    const sessionId = crypto.randomUUID();
    await client.hSet(`sessions:${userId}`, sessionId, JSON.stringify({
      ...sessionData,
      createdAt: Date.now()
    }));
    await client.expire(`sessions:${userId}`, 86400 * 7);
    return sessionId;
  }

  async invalidateAll(userId) {
    await client.del(`sessions:${userId}`);
  }
}
```

## Cookie Configuration

```javascript
app.use(session({
  name: 'session',
  secret: process.env.SESSION_SECRET,
  cookie: {
    httpOnly: true,
    secure: process.env.NODE_ENV === 'production',
    sameSite: 'strict',
    maxAge: 3600000, // 1 hour
    domain: '.example.com'
  },
  resave: false,
  saveUninitialized: false
}));
```

## Token Refresh Flow

```javascript
app.post('/auth/refresh', async (req, res) => {
  const { refreshToken } = req.cookies;

  try {
    const payload = jwt.verify(refreshToken, process.env.REFRESH_SECRET);
    if (payload.type !== 'refresh') throw new Error('Invalid token type');

    const user = await User.findById(payload.userId);
    const tokens = generateTokens(user);

    res.cookie('accessToken', tokens.accessToken, cookieOptions);
    res.json({ success: true });
  } catch (err) {
    res.status(401).json({ error: 'Invalid refresh token' });
  }
});
```

## Security Requirements

- Use HTTPS exclusively
- Set httpOnly and sameSite on cookies
- Implement proper token expiration
- Use strong, unique secrets per environment
- Validate signatures on every request

## Never Do

- Store sensitive data in tokens
- Transmit tokens via URL parameters
- Use weak or shared secrets
- Skip signature validation

© secondsky · MIT · secondsky/claude-skills

Смотрите также

Спонсоры проекта

Компании, которые помогают держать аналитику открытой