OAuth 最佳实践
OAuth 2.0 是行业标准的授权协议。本指南介绍使用 OpenDev 平台集成 OAuth 的最佳实践。
架构模式
推荐 OAuth 流程
用户 → 应用客户端 → OpenDev 后端 → 提供商(如 Google)
↑ ↑
└── 重定向与 Token 交换 ──┘
移动端流程
移动应用建议使用 Authorization Code Flow with PKCE:
- 生成 codeverifier 与 codechallenge
- 启动 OAuth 时携带 code_challenge
- 交换 code 时携带 code_verifier
Web 应用流程
Web 应用建议使用 服务端流程:
- 在后端交换授权码与 Token
- 验证
state防 CSRF - Token 仅存于服务端
安全最佳实践
- 验证 state 参数 - 防止 CSRF
- 服务端交换 Token - 不在前端交换
- 安全存储 Token - 加密、仅服务端
- 实现 Token 刷新 - 使用 refresh_token
- 最小 Scope - 只请求必要权限
错误处理
| 错误 | 处理方式 |
|---|---|
| access_denied | 用户拒绝,友好提示 |
| invalid_grant | Token 过期/失效,引导重新登录 |
| redirecturimismatch | 检查回调 URL 配置 |