关于 api-authentication
用于实现 API 身份验证的安全技能,涵盖 JWT、OAuth 2.0、API 密钥和会话管理。提供保护身份验证流程及凭据的参考指南和实践建议。
主要功能
- 01JWT 身份验证指南
- 02OAuth 2.0 实现
- 03API 密钥身份验证
- 04令牌刷新与过期实践
- 05密码哈希与速率限制
适用场景
- 01保护 API 端点
- 02构建登录和注销流程
- 03管理访问令牌与刷新令牌
- 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.mdjwt-authentication.mdoauth-20-implementation.mdpython-authentication-implementation.mdscripts/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