1️⃣ Resource Owner资源所有者,即代表授权客户端访问本身资源信息的用户(User),也就是应用场景的“开发者A”
2️⃣ Resource Server 资源服务器,托管受保护的用户账号信息,比如Github。
3️⃣ Authorization Server 授权服务器,验证用户身份然后为客户端派发资源访问令牌,比如Github
Resource Server 和 Authorization Server 可以是同一台服务器,也可以是不同的服务器,视具体的授权平台而有所差异。4️⃣ Client客户端,即代表意图访问受限制的第三方应用
授权流程

流程解析
1️⃣ 用户打开客户端以后,客户端要求用户给予授权
2️⃣ 用户 同意给予客户端授权。
3️⃣ 客户端使用上一步获得的授权,向认证服务器申请令牌。
4️⃣ 认证服务器对客户端进行认证之后,确认无误,同意发放令牌。
5️⃣ 客户端使用令牌,向资源服务器 申请获取资源。
6️⃣ 资源服务器确认令牌无误,同意向客户端 开放资源
Authorization Grant
Authorization Code
结合普通服务器端应用使用(web端常用的授权方式)
Implicit
结合移动应用或者WebApp使用
Resource Owner Password Credentials
适用于受信任的客户端应用,例如通哥组织的内部或外部应用
Client Credentials
适用于客户端调用主服务API型应用(比如百度API Store)
上述流程理解起来有些难度,这儿我们给出一个白话版的流程图
首先需要引入三个角色:
1️⃣ 用户A:可以理解成你自己
2️⃣ 网站B:可以理解成OSChina
3️⃣ 第三方C:可以理解成Github
📚 需求:
你(用户A)想通过 Github(第三方C)登录网站B(OSChina)
💡注: 下面的内容为流程图,如果您在阅读的时候显示为纯文字,请尝试刷新页面,直到显示正常。
