mcpField
A
api-authentication

api-authentication

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

关于 api-authentication

用于实现 API 身份验证的安全技能,涵盖 JWT、OAuth 2.0、API 密钥和会话管理。提供保护身份验证流程及凭据的参考指南和实践建议。

主要功能

  1. 01JWT 身份验证指南
  2. 02OAuth 2.0 实现
  3. 03API 密钥身份验证
  4. 04令牌刷新与过期实践
  5. 05密码哈希与速率限制

适用场景

  1. 01保护 API 端点
  2. 02构建登录和注销流程
  3. 03管理访问令牌与刷新令牌
  4. 04接入 OAuth 2.0 提供方

安装

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

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

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

包含的文件

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

references/
api-key-authentication.md
jwt-authentication.md
oauth-20-implementation.md
python-authentication-implementation.md
scripts/
security-checklist.sh

详细介绍

API 身份验证

目录

概述

为 API 实现全面的身份验证策略,包括 JWT 令牌、OAuth 2.0、API 密钥和会话管理,并遵循适当的安全实践。

适用场景

  • 保护 API 端点
  • 实现用户登录/登出流程
  • 管理访问令牌和刷新令牌
  • 集成 OAuth 2.0 提供方
  • 保护敏感数据
  • 实现 API 密钥身份验证

快速入门

最简可运行示例:

// Node.js JWT Implementation
const express = require('express');
const jwt = require('jsonwebtoken');
const bcrypt = require('bcrypt');

const app = express();
const SECRET_KEY = process.env.JWT_SECRET || 'your-secret-key';
const REFRESH_SECRET = process.env.REFRESH_SECRET || 'your-refresh-secret';

// User login endpoint
app.post('/api/auth/login', async (req, res) => {
  try {
    const { email, password } = req.body;

    // Find user in database
    const user = await User.findOne({ email });
    if (!user) {
      return res.status(401).json({ error: 'Invalid credentials' });
    }

    // Verify password
    const isValid = await bcrypt.compare(password, user.password);
    if (!isValid) {
      return res.status(401).json({ error: 'Invalid credentials' });
    }
// ... (see reference guides for full implementation)

参考指南

references/ 目录中的详细实现:

指南内容
JWT 身份验证JWT 身份验证
OAuth 2.0 实现OAuth 2.0 实现
API 密钥身份验证API 密钥身份验证
Python 身份验证实现Python 身份验证实现

最佳实践

✅ 应该做
  • 对所有身份验证使用 HTTPS
  • 安全存储令牌(HttpOnly Cookie)
  • 实现令牌刷新机制
  • 设置适当的令牌过期时间
  • 对密码进行哈希和加盐处理
  • 使用强密钥
  • 在每次请求时验证令牌
  • 对身份验证端点实施速率限制
  • 记录身份验证尝试
  • 定期轮换密钥
❌ 不要做
  • 以纯文本形式存储密码
  • 在 URL 参数中传递令牌
  • 使用弱密钥
  • 在 JWT 载荷中存储敏感数据
  • 忽略令牌过期时间
  • 在生产环境中禁用 HTTPS
  • 记录敏感令牌
  • 在多个服务间重复使用 API 密钥
  • 在代码中存储凭据

评论

支持 Markdown