主页

索引

模块索引

搜索页面

OAuth2.0协议

简介

  • OAuth 是一个关于授权(authorization)的开放网络标准

  • OAuth(开放授权)是一个开放标准,允许用户让第三方应用访问该用户在某一网站上存储的私密的资源(如照片,视频,联系人列表),而无需将用户名和密码提供给第三方应用。OAuth 是 Open Authorization 的简写。

OAuth2.0 一共分为四种授权方式:

1. 密码模式
2. 客户端模式
3. 简化模式
4. 授权码模式

QuickLearn

实例:

有一个"云冲印"的网站,可以将用户储存在Google的照片,冲印出来
用户为了使用该服务,必须让"云冲印"读取自己储存在Google上的照片

名词:

1. Third-party application
    第三方应用程序,又称"客户端"(client),即上一节例子中的"云冲印"
2. HTTP service
    HTTP服务提供商,本文中简称"服务提供商",即上一节例子中的Google
3. Resource Owner
    资源所有者,又称"用户"(user)
4. User Agent
    用户代理,本文中就是指浏览器
5. Authorization server
    认证服务器,即服务提供商专门用来处理认证的服务器(如GitHub,微信等)
6. Resource server
    资源服务器,即服务提供商存放用户生成的资源的服务器(通常和授权服务器属于同一服务商)
    它与认证服务器,可以是同一台服务器,也可以是不同的服务器

步骤:

A. 用户打开客户端(三方应用)以后,客户端要求用户给予授权
B. 用户同意给予客户端授权
C. 客户端使用上一步获得的授权,向认证服务器申请令牌
D. 认证服务器对客户端进行认证以后,确认无误,同意发放令牌
E. 客户端使用令牌,向资源服务器申请获取资源
F. 资源服务器确认令牌无误,同意向客户端开放资源
注:最主要是B步骤
https://img.zhaoweiguo.com/knowledge/images/protocols/protocol_auth2_architecture1.png
+--------+                               +---------------+
|        |--(A)- Authorization Request ->|   Resource    |
|        |                               |     Owner     |
|        |<-(B)-- Authorization Grant ---|               |
|        |                               +---------------+
|        |
|        |                               +---------------+
|        |--(C)-- Authorization Grant -->| Authorization |
| Client |                               |     Server    |
|        |<-(D)----- Access Token -------|               |
|        |                               +---------------+
|        |
|        |                               +---------------+
|        |--(E)----- Access Token ------>|    Resource   |
|        |                               |     Server    |
|        |<-(F)--- Protected Resource ---|               |
+--------+                               +---------------+

主页

索引

模块索引

搜索页面