用途:该技能用于指导按 OAuth 2.1 规范实现认证流程,属于强制性规则集合(资料标注必须于 2026 年第二季度符合)。
主要能力与硬性规则:所有客户端(含机密客户端)必须使用 PKCE,授权码流程需生成并校验 code_challenge,方法为 S256;永久移除隐式流程,禁止 response_type=token;禁止直接收集用户密码的 Resource Owner Password Credentials 流程;禁止在 URI 查询参数中传递令牌,仅允许 Authorization 头或 POST 体;重定向 URI 必须精确匹配,不允许通配符、部分匹配或末尾斜杠容错。
令牌安全:访问令牌有效期不超过 15 分钟;刷新令牌每次使用都轮换,检测到重用即吊销该用户全部会话;访问令牌与刷新令牌只能存放于 HttpOnly、Secure、SameSite=Strict 的 Cookie,禁止存入 localStorage 或 sessionStorage;全程仅通过 HTTPS 传输;使用 state 参数防 CSRF;JWT 签名校验建议 RS256 或 ES256,而非 HS256。
使用方式:先以 generatePKCE() 生成 code_verifier 与 code_challenge(verifier 临时存入 sessionStorage),构造授权请求并设置 response_type=code、code_challenge_method=S256、state 等参数,跳转授权端点;回调后用 code_verifier 向令牌端点发起 POST 换取令牌,用后立即清除 verifier。资料另给出令牌 Cookie 设置、刷新令牌轮换的服务端示例、注销步骤,以及 Passkeys/WebAuthn 的注册与认证示例。
适用场景:Web 与 SPA 应用的登录、第三方 OAuth 登录(如 GitHub)、统一令牌管理与会话注销实现。
限制与提示:资料声明 PKCE 对所有客户端无例外、无遗留豁免;GitHub 目前尚不支持 PKCE,示例注明待其支持时启用。技能要求执行前读取 .claude/context/memory/learnings.md 并在完成后记录新发现。具体价格、平台支持范围与部署细节资料未提供。