关于 oauth-implementation
用于实现 OAuth 2.0 和 OpenID Connect 身份验证的安全开发技能,涵盖 JWT、刷新令牌和会话管理,并提供 Node.js、Python 和 Java 实施指南。
主要功能
- 01OAuth 2.0 身份验证流程
- 02OpenID Connect 实现
- 03JWT 与刷新令牌处理
- 04安全会话管理
- 05Node.js、Python 和 Java 指南
适用场景
- 01构建用户身份验证系统
- 02集成第三方 API
- 03实现单点登录
- 04保护移动应用身份验证
安装
复制下面的命令,在终端中运行。
$
npx skills add https:/ / github.com/ aj-geddes/ useful-ai-prompts --skill oauth-implementation安装后在 Claude Code 中输入/oauth-implementation确认已加载。
包含的文件
除 SKILL.md 外,安装时一起下载的参考资料和脚本。
references/java-spring-security-oauth.mdnodejs-oauth-20-server.mdpython-openid-connect-implementation.mdscripts/security-checklist.sh详细介绍
OAuth 实现
目录
概述
使用 JWT 令牌、刷新令牌和安全会话管理,实现符合行业标准的 OAuth 2.0 和 OpenID Connect 身份验证流程。
适用场景
- 用户身份验证系统
- 第三方 API 集成
- 单点登录(SSO)实现
- 移动应用身份验证
- 微服务安全
- 社交登录集成
快速开始
最简可运行示例:
// oauth-server.js - Complete OAuth 2.0 implementation
const express = require("express");
const jwt = require("jsonwebtoken");
const crypto = require("crypto");
const bcrypt = require("bcrypt");
class OAuthServer {
constructor() {
this.app = express();
this.clients = new Map();
this.authorizationCodes = new Map();
this.refreshTokens = new Map();
this.accessTokens = new Map();
// JWT signing keys
this.privateKey = process.env.JWT_PRIVATE_KEY;
this.publicKey = process.env.JWT_PUBLIC_KEY;
this.setupRoutes();
}
// Register OAuth client
registerClient(clientId, clientSecret, redirectUris) {
this.clients.set(clientId, {
clientSecret: bcrypt.hashSync(clientSecret, 10),
// ... (see reference guides for full implementation)
参考指南
references/ 目录中的详细实现:
| 指南 | 内容 |
|---|---|
| Node.js OAuth 2.0 Server | Node.js OAuth 2.0 服务端 |
| Python OpenID Connect Implementation | Python OpenID Connect 实现 |
| Java Spring Security OAuth | Java Spring Security OAuth |
最佳实践
✅ 应该做
- 对公共客户端使用 PKCE
- 实现令牌轮换
- 安全存储令牌
- 全程使用 HTTPS
- 验证重定向 URI
- 实现速率限制
- 使用短期访问令牌
- 记录身份验证事件
❌ 不要做
- 将令牌存储在 localStorage 中
- 使用隐式授权流程
- 跳过 state 参数
- 暴露客户端密钥
- 允许开放重定向
- 使用弱签名密钥
评论
支持 Markdown