OAuth2.0
OAuth2.0
1. OAuth2 是什么
含义
OAuth2.0
是OAuth
协议的延续版本,但不向前兼容OAuth 1.0
(即完全废止了OAuth1.0
)。 OAuth 2.0
关注客户端开发者的简易性。要么通过组织在资源拥有者和HTTP服务商之间的被批准的交互动作代表用户,要么允许第三方应用代表用户获得访问的权限。同时为Web应用,桌面应用和手机,和起居室设备提供专门的认证流程
2. OAuth2 的四种角色
- 资源所有者(Resource Owner) : 即用户本身
- 资源服务器(Resource Server) : 存储受保护的账号信息
- 授权服务器(Authorization Server) : 在成功验证用户身份, 并获得授权后, 给客户端派发访问令牌
- 客户端(Client) : 即代表你访问的第三方应用
3.OAuth2 的四种模式
授权码模式 : 最常用的模式, 最繁琐的模式, 也是最安全的模式
流程: 也可以把访问照片理解成为,登录第三方应用
- 1.2.3:用户通过浏览器访问第三方应用(client)的一张照片,但浏览器没有权限
- 4:通过请求重定向至授权页面,等待用户授权
- 5.6:用户授权完成,授权服务器返回一个 code 和 client_id 给浏览器
- 7.8.9:浏览器拿着code去请求client,client拿着code去和授权服务器换取Access_token和 Refresh_token
- 10.11: client拿着Access_token去和资源服务器换取照片信息,资源服务器验证access_Token的合法性,没问题就允许访问可控资源,返回照片列表给client
- 12.13: client拿到照片列表给到浏览器,浏览器返回视图给用户看
简化模式
简化模式相比于授权码模式,少了code换取token这一步,但不安全,token可以被恶意脚本获取,同时token有效期短,浏览器关闭即失效。
密码模式
密码模式是用户直接将自己的用户名密码交给client(App),client用用户的用户名密码直接换取AccessToken。
客户端模式
只要client请求,我们就将AccessToken发送给它。
OAuth2.0
http://shadowzlh.top/2023/08/26/OAuth2-0/