OAuth 协议为用户资源的授权提供了一个安全的、开放而又简易的标准。与以往的授权方式不同之处是 OAuth的授权不会使第三方触及到用户的帐号信息(如用户名与密码),即第三方无需使用用户的用户名与密码就可以申请获得该用户资源的授权,因此 OAuth是安全的。OAuth 是 Open Authorization 的简写。
OAuth 2.0 成员
- Resource Owner 资源拥有者:用户
- Client 第三方接入平台:请求者
- Resource Server 服务器资源:数据中心
- Authorization Server 认证服务器
四种模式
名称 | grant_type | 说明 | |
---|---|---|---|
授权码模式 | authorization code | authorization_code | 先登录获取code,再获取token |
简化模式 | implicit | implicit | 在redirect_uri 的Hash 传递token, Auth 客户端运行在浏览器中,如js,flash |
密码模式 | resource owner password credentials | password | 将用户名,密码传过去,直接获取token |
客户端模式 | client credentials | client_credentials | 无用户,用户向客户端注册,然后客户端以自己的名义向'服务端'获取资源 |
更新模式
客户端发出更新令牌的HTTP请求,包含以下参数:
- grant_type:表示使用的授权模式,此处的值固定为"refresh_token",必选项。
- refresh_token:表示早前收到的更新令牌,必选项。
- scope:表示申请的授权范围,不可以超出上一次申请的范围,如果省略该参数,则表示与上一次一致。
例子介绍
一个完整的交互例子: my-website 获取用户的 Github信息
Related
(阮一峰解释OAuth2.0)[https://www.kancloud.cn/kancloud/oauth_2_0/63339]