OAuth 2.0
2025-09-13 21:24 古兆洋 阅读(12) 评论(0) 收藏 举报OAuth 2.0 是一种开放的授权协议,旨在为用户资源的访问提供安全、简洁且标准化的解决方案。它允许用户授权第三方应用访问其在服务提供商上的资源,而无需直接暴露用户的敏感凭据(如用户名和密码)。这种机制广泛应用于单点登录(SSO)、API授权等场景。
核心概念
OAuth 2.0 的运行涉及多个角色:
- 
资源所有者(Resource Owner):通常是用户,拥有需要被访问的资源。
 - 
客户端(Client):请求访问资源的第三方应用,例如移动应用或网站。
 - 
授权服务器(Authorization Server):负责验证用户身份并颁发访问令牌。
 - 
资源服务器(Resource Server):存储用户资源并验证访问令牌的服务器。
 
访问令牌(Access Token) 是授权服务器颁发的凭证,客户端通过它访问资源。令牌通常有有效期,过期后可通过 刷新令牌(Refresh Token) 获取新的访问令牌。
工作流程
OAuth 2.0 的授权流程通常包括以下步骤:
- 
客户端向资源所有者请求授权。
 - 
用户同意授权后,客户端向授权服务器申请访问令牌。
 - 
授权服务器验证授权请求并颁发访问令牌。
 - 
客户端携带访问令牌向资源服务器请求资源。
 - 
资源服务器验证令牌并返回资源。
授权模式
OAuth 2.0 定义了四种主要授权模式:
- 
授权码模式(Authorization Code):最常用且安全性最高,适用于后端服务器交互。
 - 
隐式模式(Implicit):适用于前端单页应用,直接颁发访问令牌,但安全性较低。
 - 
密码模式(Resource Owner Password Credentials):用户直接提供用户名和密码,适用于高度信任的应用。
 - 
客户端模式(Client Credentials):客户端以自身身份获取令牌,常用于后端服务或无用户参与的场景。
安全性考虑
为了确保 OAuth 2.0 的安全性,需注意以下几点:
- 
重定向 URI 应使用 HTTPS 并严格匹配。
 - 
访问令牌 和 刷新令牌 应加密传输并妥善存储。
 - 
防范 CSRF 攻击,可通过 state 参数验证请求合法性。
应用场景
OAuth 2.0 被广泛应用于:
- 
第三方登录:用户可通过 Google、Facebook 等账户登录其他应用。
 - 
API 授权:如允许应用访问用户的云存储文件或发布社交媒体内容。
 
OAuth 2.0 提供了一种灵活且安全的授权机制,解决了传统凭据共享方式的诸多问题,成为现代网络服务中不可或缺的标准。
参考博客:
https://cloud.tencent.com/developer/article/2418791 深入理解OAuth 2.0:原理、流程与实践-腾讯云开发者社区-腾讯云
https://zhuanlan.zhihu.com/p/644180076 有图解有案例,我终于把OAuth2.0搞清楚了 - 知乎 - 
 
 - 
 
 - 
 
                    
                
                
            
        
浙公网安备 33010602011771号