mcpField
S
session-management

session-management

github.com/aj-geddes安全374463 次安装34 周前更新
代码仓库

关于 session-management

这项技能介绍如何在不同后端框架中实现会话管理,涵盖安全令牌处理、持久化、刷新、注销和 CSRF 防护,并提供 JWT、Redis 存储、中间件及会话维护指南。

主要功能

  1. 01安全令牌处理
  2. 02会话持久化
  3. 03令牌刷新机制
  4. 04注销流程
  5. 05CSRF 防护
  6. 06会话清理指南

适用场景

  1. 01实现用户身份验证
  2. 02管理会话状态和用户上下文
  3. 03处理 JWT 刷新周期
  4. 04防护状态变更请求中的 CSRF

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/aj-geddes/useful-ai-prompts --skill session-management

安装后在 Claude Code 中输入/session-management确认已加载。

包含的文件

除 SKILL.md 外,安装时一起下载的参考资料和脚本。

references/
csrf-protection.md
jwt-token-generation-and-validation.md
nodejsexpress-jwt-implementation.md
session-cleanup-and-maintenance.md
session-middleware-chain.md
session-storage-with-redis.md
token-refresh-endpoint.md
scripts/
security-checklist.sh

详细介绍

会话管理

目录

概述

在不同后端框架中实现完善的会话管理系统,包括安全的令牌处理、会话持久化、令牌刷新机制、规范的登出流程以及 CSRF 防护。

适用场景

  • 实现用户身份验证系统
  • 管理会话状态和用户上下文
  • 处理 JWT 令牌刷新周期
  • 实现登出功能
  • 防范 CSRF 攻击
  • 管理会话过期和清理

快速入门

最简可运行示例:

# Python/Flask Example
from flask import current_app
from datetime import datetime, timedelta
import jwt
import os

class TokenManager:
    def __init__(self, secret_key=None):
        self.secret_key = secret_key or os.getenv('JWT_SECRET')
        self.algorithm = 'HS256'
        self.access_token_expires_hours = 1
        self.refresh_token_expires_days = 7

    def generate_tokens(self, user_id, email, role='user'):
        """Generate both access and refresh tokens"""
        now = datetime.utcnow()

        # Access token
        access_payload = {
            'user_id': user_id,
            'email': email,
            'role': role,
            'type': 'access',
            'iat': now,
            'exp': now + timedelta(hours=self.access_token_expires_hours)
// ... (see reference guides for full implementation)

参考指南

references/ 目录中的详细实现:

指南内容
JWT 令牌生成与验证JWT 令牌生成与验证
Node.js/Express JWT 实现Node.js/Express JWT 实现
使用 Redis 存储会话使用 Redis 存储会话
CSRF 防护CSRF 防护
会话中间件链会话中间件链
令牌刷新端点令牌刷新端点
会话清理与维护会话清理与维护

最佳实践

✅ 应该做
  • 所有会话传输都使用 HTTPS
  • 使用安全 Cookie(httpOnly、sameSite、secure 标志)
  • 使用过期时间设置合理的 JWT
  • 实现令牌刷新机制
  • 安全存储刷新令牌
  • 在每次请求时验证令牌
  • 使用强度足够的密钥
  • 实现会话超时
  • 记录身份验证事件
  • 登出时清除会话数据
  • 对会更改状态的请求使用 CSRF 令牌
❌ 不应该做
  • 在令牌中存储敏感数据
  • 使用较短的密钥
  • 在 URL 中传输令牌
  • 忽略令牌过期
  • 在不同环境中重复使用令牌密钥
  • 将令牌存储在 localStorage 中(请使用 httpOnly Cookie)
  • 在没有 HTTPS 的情况下实现会话
  • 忘记验证令牌签名
  • 在日志中暴露会话 ID
  • 使用可预测的会话 ID

评论

支持 Markdown