录屏 音乐 摸鱼 压图
OAuth是一项开放标准,用于在不暴露用户凭据的前提下,授权第三方应用代表用户访问受保护资源。它已被全球各大平台广泛采用,成为实现“单点登录”与跨系统授权的事实协议。
1.资源所有者:通常指终端用户,拥有受保护资源(如头像、订单信息)。
2.客户端:请求访问资源的第三方应用,例如京东App。
3.资源服务器:存储并托管受保护资源的服务器,例如保存用户信息的QQ或微信服务器。
4.授权服务器:负责验证资源所有者身份并颁发访问令牌的服务器,例如微信OpenAPI。在多数实现中,授权服务器与资源服务器由同一主体运维。
以OAuth2.0授权码模式为例,标准流程分为六步:
1.客户端引导资源所有者至授权服务器,申请授权码。
2.资源所有者登录并同意授权,授权服务器返回授权码。
3.客户端使用授权码向授权服务器请求访问令牌。
4.授权服务器验证授权码后,颁发访问令牌。
5.客户端携带访问令牌调用资源服务器API。
6.资源服务器将令牌转发给授权服务器验证;验证通过后,返回受保护资源。
授权码模式把“用户凭证”与“客户端凭证”彻底分离:用户只在授权服务器登录,客户端永远接触不到用户密码;授权码一次性有效,降低了令牌泄露风险。
第三方登录:使用QQ、微信、Google等账号快速登录电商、社区、游戏等应用,无需重新注册。
开放API调用:开发者通过用户授权,获取头像、昵称、订单等数据,实现个性化服务。
OAuth1.0于2007年发布,因签名流程复杂、安全缺陷较多,已被废弃。OAuth2.0简化了流程,引入多种授权模式,并修复了先前版本的关键漏洞。当前业界已全面迁移至OAuth2.0,并在此基础上扩展了PKCE、JWT配置文件等安全增强机制。