用途:实现或审计 OAuth 2.0 授权码流程,覆盖 PKCE、state、授权码、令牌交换、scope、redirect URI 等要素。
主要能力:给出授权码流程五步概览(/authorize 获取 code、回调、/token 交换、Bearer 调用资源服务器),强调只使用 response_type=code,禁用已废弃的隐式流程;提供 PKCE 实现(每次重定向生成 verifier 与 SHA-256 challenge,challenge_method 只用 S256,令牌交换时携带 code_verifier 并立即清除);提供 state 随机生成、存储与回调校验(防止 CSRF,可把 returnTo 嵌入 state);给出授权请求、回调处理(先处理 error,再校验 state,最后交换)、公开客户端与服务端客户端令牌交换写法;说明 scope 最小化、校验实际授予的 scope、用 offline_access 获取刷新令牌、openid 获取 id_token;给出 OIDC id_token 校验要点(签名对比 JWKS、iss、aud、exp、nonce);附常见错误对照表(隐式流程、无 state、无 PKCE、令牌放 URL、不校验 id_token、开放重定向、前端放 client_secret、localStorage 存令牌、plain challenge)与审计清单;按客户端类型给出流程选型(SPA/移动用授权码+PKCE,服务端用授权码+client_secret(+PKCE),机器对机器用 client credentials,受限设备用设备授权流程);提供按需加载的参考文件(栈示例、各提供商差异)。
使用方式:作为技能在开发或审计 OAuth 登录时参照其代码片段与清单执行,具体安装与调用方式暂未提供。
适用场景:SPA、移动端、服务端 Web 应用及机器对机器等鉴权场景。
限制:资料未提供具体收费、价格或平台支持信息;令牌存储建议为访问令牌放内存、刷新令牌放 httpOnly cookie,且建议使用库(jose、openid-client、python-jose)而非自研。