JustAuth JustAuth
首页
开始使用🔥
  • 使用State
  • 自定义state缓存
  • 自定义第三方平台的OAuth
  • 自定义Scope
  • JustAuth与现有用户系统整合
  • 异常问题
  • 功能问题
  • 数据看板🔥
  • 贡献指南
  • 行为准则
  • 用户权益
  • 贡献者们
  • 社区配套 (opens new window)
  • 项目荣誉🔥
  • 精选文章
社区活动
  • 关于
  • 友情链接
  • 其他开源
  • 更新记录
收藏
GitHub (opens new window)

JustAuth

开箱即用的整合第三方登录的开源组件
首页
开始使用🔥
  • 使用State
  • 自定义state缓存
  • 自定义第三方平台的OAuth
  • 自定义Scope
  • JustAuth与现有用户系统整合
  • 异常问题
  • 功能问题
  • 数据看板🔥
  • 贡献指南
  • 行为准则
  • 用户权益
  • 贡献者们
  • 社区配套 (opens new window)
  • 项目荣誉🔥
  • 精选文章
社区活动
  • 关于
  • 友情链接
  • 其他开源
  • 更新记录
收藏
GitHub (opens new window)
  • 使用指南
  • 名词解释
  • 快速开始

    • OAuth流程
      • 关于OAuth
      • OAuth 2 的授权流程
        • 参与的角色
        • 授权流程
        • 授权许可 Authorization Grant
      • 直白话 OAuth 2 流程
    • 如何使用
    • 异常代码
  • 集成第三方

  • 参考文档
  • 指南
  • 快速开始
JustAuth
2021-09-29

OAuth流程

# 关于OAuth

请先查阅以下资料:

  • The OAuth 2.0 Authorization Framework (opens new window)
  • OAuth 2.0 (opens new window)

# OAuth 2 的授权流程

# 参与的角色

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

# 授权流程

     +--------+                               +---------------+
     |        |--(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 ---|               |
     +--------+                               +---------------+
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17

上面的流程图取自The OAuth 2.0 Authorization Framework#1.2 (opens new window)

流程解析

  • (A) 用户打开客户端以后,客户端要求用户给予授权。
  • (B) 用户同意给予客户端授权。
  • (C) 客户端使用上一步获得的授权,向认证服务器申请令牌。
  • (D) 认证服务器对客户端进行认证以后,确认无误,同意发放令牌
  • (E) 客户端使用令牌,向资源服务器申请获取资源。
  • (F) 资源服务器确认令牌无误,同意向客户端开放资源。

# 授权许可 Authorization Grant

  • Authorization Code
    • 结合普通服务器端应用使用(web端常用的授权方式)
  • Implicit
    • 结合移动应用或 Web App 使用
  • Resource Owner Password Credentials
    • 适用于受信任客户端应用,例如同个组织的内部或外部应用
  • Client Credentials
    • 适用于客户端调用主服务API型应用(比如百度API Store)

# 直白话 OAuth 2 流程

以上流程理解起来可能有些难度,这儿我们给出一个白话版的流程图

首先引入三个角色:

  • 用户A:可以理解成你自己
  • 网站B:可以理解成 OSChina
  • 第三方C:可以理解成 Github

需求:你(用户A)想通过 Github(第三方C) 登录网站B(OSChina)。

💡注:下面的内容为流程图,如果您在阅读的时候显示为纯文字,请尝试刷新页面,直到显示正常

编辑 (opens new window)
#OAuth#OAuth2.0流程
Last Updated: 2021/10/06, 18:03:43
名词解释
如何使用

← 名词解释 如何使用→

最近更新
01
AppleID登录
09-13
02
关于
09-13
03
企业微信二维码登录(新)
08-04
更多文章>
Theme by Vdoing | Copyright © 2021-2024

友情链接:UniAdmin | 江如意的博客

Written by Yadong.Zhang | 鲁ICP备17054970号-3 |
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式