博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
oauth2学习
阅读量:5193 次
发布时间:2019-06-13

本文共 1141 字,大约阅读时间需要 3 分钟。

oauth2

  1. 生词:

    1. 授权码模式(authorization code)
    2. 简化模式(implicit)
    3. 密码模式(resource owner password credentials)
    4. 客户端模式(client credentials)
  2. 问题:

    1. 分享目标:大致了解oauth的运行流程,及如何使用oauth(代码实现)。
    2. oauth是什么?
      1. oauth是目前最流行的一套授权机制标准。
    3. oauth的应用场景?
      1. 假设一个例子:
        1. 有一个在线读取pdf的网站。极速PDF在线阅读
        2. 我们想要在线阅读百度云存储的pdf文档,那么就需要让极速pdf来读取百度云存储的pdf,那么极速pdf是怎样获取到用户的授权呢?
        3. 传统的做法是我们将百度云账号密码告诉极速pdf,这样后者就可以进行读取pdf文档了
        4. 这样的做法会有几个严重的缺点
          1. 极速pdf为了后续的在线阅读服务可能会保存我们的百度云账号密码
          2. 极速pdf会读取我们百度云所有资料。
          3. 只有我们修改密码后才能控制极速pdf的权利,于此同时我们用的其他第三方应用也都失效了
        5. 这时由国外的几位大佬共同发起的,为API访问授权提供一套标准:Oauth
  3. oauth2.0 运行流程

    1. 1347845-20190719202048972-1802348138.png

    2. A:第三方请求用户获取授权

      B:用户同意授权

      C:第三方带着用户授权向认证服务器获取token

      D:认证服务器校验用户授权后,返回token

      E:带着token请求资源服务器

      F:资源服务器校验token 后返回所需资源

  4. 授权码模式(authorization code)

    1. 1347845-20190719202113240-659375875.png

      1. 第三方服务跟用户索要授权
      2. 用户给予授权
      3. 浏览器拿着加密的用户信息和回调地址给认证服务器
      4. 认证服务器校验用户信息和回调地址后返回授权码。
      5. 第三方应用再根据授权码和回调地址请求认证服务器
      6. 认证服务器校验后返回token
  5. 简化模式(implicit grant type)

    1. 1347845-20190719202131585-1647352621.png

    2. 执行流程:
      1. 获取用户授权
      2. 将用户client信息和回调地址发送到认证服务器
      3. 认证服务器校验成功后返回重定向地址和token对象的哈希值
      4. 浏览器带着重定向地址向资源服务器发出请求
      5. 资源服务器返回一个页面,根据hash值获取token信息
  6. 密码模式(Resource Owner Password Credentials Grant)

    1. 1347845-20190719202141278-1540883842.png

    2. 执行流程
      1. 用户向客户端提供账号密码
      2. 客户端用账号密码请求认证服务器
      3. 认证服务器校验成功后返回token
  7. 客户端模式(Client Credentials Grant)

    1. 1347845-20190719202200326-443230770.png

    2. 第三方服务带上client信息向认证服务器请求获取token
    3. 认证服务器校验client信息后返回token

转载于:https://www.cnblogs.com/CHWLearningNotes/p/11215563.html

你可能感兴趣的文章
css样式写一个三角形
查看>>
比callback更简洁的链式执行promise
查看>>
android permission
查看>>
javascript获取textarea中所选文本的开始位置、结束位置和选择的文本
查看>>
【译】在Asp.Net中操作PDF - iTextSharp - 使用字体
查看>>
事务备份还原分离附加
查看>>
JSch - Java实现的SFTP(文件上传详解篇)
查看>>
一些注意点
查看>>
.net 文本框只允许输入XX,(正则表达式)
查看>>
获得Windows系统的远程桌面连接历史记录
查看>>
C#修饰符
查看>>
20.核心初始化之异常向量表
查看>>
[BSGS][哈希]luogu P3846 可爱的质数
查看>>
Python 第四十五章 MySQL 内容回顾
查看>>
iostat参数说明
查看>>
js 封装获取元素的第一个元素
查看>>
iOS 获取Home键指纹验证
查看>>
Python-Mac 安装 PyQt4
查看>>
P2571 [SCOI2010]传送带
查看>>
哈希表1
查看>>