文章目录
- 📖 OAuth2 的授权流程
- 📑 参与的角色
- 📑 授权流程
- 📑 授权许可 `Authorization Grant`
- 📑 直白话 OAuth2 流程
📖 OAuth2 的授权流程
📑 参与的角色
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)
📑 直白话 OAuth2 流程
上述流程理解起来有些难度,这儿我们给出一个白话版的流程图
首先需要引入三个角色:
1️⃣ 用户A:可以理解成你自己
2️⃣ 网站B:可以理解成OSChina
3️⃣ 第三方C:可以理解成Github
📚 需求:
你(用户A)想通过 Github(第三方C)登录网站B(OSChina)
💡注: 下面的内容为流程图,如果您在阅读的时候显示为纯文字,请尝试刷新页面,直到显示正常。
















![[附源码]SSM计算机毕业设计教师业绩考核系统JAVA](https://img-blog.csdnimg.cn/73071bd6bb88487d8d0bacd1334360d2.png)



