OAuth 2.0 授权码模式是当前最安全的授权流程,但仍需防范授权码拦截与令牌泄露风险。
一、标准授权码流程
- 客户端将用户重定向至授权服务器
- 用户认证后,授权服务器回调携带
code - 客户端后端使用
code+client_secret换取access_token
二、关键防御措施
- PKCE:公共客户端必须使用
code_verifier与code_challenge绑定授权码 - state 参数:防止 CSRF,回调时校验 state 一致性
- 重定向 URI 白名单:严格匹配,禁止通配符
- 短期令牌:Access Token 有效期控制在分钟级,配合 Refresh Token 轮换
http
POST /token
Content-Type: application/x-www-form-urlencoded
grant_type=authorization_code&code=xxx&redirect_uri=https://app.example.com/cb&code_verifier=yyy