zoukankan      html  css  js  c++  java
  • OAuth2.0

    不同平台,用户之间互信的问题
    UAC 身份验证中心,管理Web应用,桌面应用和手机,和起居室设备的用户身份验证,允许用户通过一次登录就访问来自多个应用程序的数据

    OAuth2.0协议
    无需加密的认证方式,OAuth 就是一种授权机制。数据的所有者告诉系统,同意授权第三方应用进入系统,获取这些数据。系统从而产生一个短期的进入令牌(token),用来代替密码,供第三方应用使用

    认证授权过程:微信扫码登录第三方网站就是OAuth2.0的一个例子;扫码后会在手机上让用户授权:是否同意登录该网站
    我住在一个门禁系统的小区内。进入需要输入密码。如何让快递员通过门禁进入小区?
    1. 门禁系统增加一个授权按钮,快递员申请授权
    2. 快递员申请授权后,我手机接收到申请,并且显示快递员相关信息
    3. 告诉门禁系统,同意快递员进入小区的授权
    4. 门禁向快递员发送一个令牌,快递员输入令牌,进入小区

    令牌跟密码的区别
    1. 令牌是有时间限制的。会自动失效,并且使用只可以使用一次
    2. 令牌可以被数据所有者撤销,会立即失效,屋主可以随时撤销令牌
    3. 令牌有权限范围,只读令牌

    客户端通过用户请求授权的时候生成一个code,这个有时间限制并且使用次数限制
    授权服务器返回客户端生成的state
    客户端拿到code,与授权服务器通信,通过code换取token
    每次与授权服务器通信都需要提供一个Oauth的secret或者用他加密

    4种授权模式
    1. 授权码模式 通过客户端的后台服务器 与认证服务器进行互动,需要浏览器
    2. 简化模式 直接在浏览器向认证服务器申请令牌跳过授权码,所有步骤在浏览器完成,令牌对访问者是可见的,客户端不需要认证,需要浏览器
    3. 密码模式 用户向客户端提供用户名跟密码,客户端根据这些信息向服务器就索要授权,我们的密码给了客户端,但是客户端不存储密码
    4. 客户端模式 客户端以自己的名义,向服务端进行认证。


    1. 用户向客户提供用户名跟密码
    2. 客户端将用户名跟密码发给认证服务器,请求令牌
    3. 认证服务器给客户端提供访问令牌
    4. 用户使用访问令牌获取资源服务器
    5. 资源服务器去授权服务器验证令牌的有效性
    6. 资源服务器根据用户信息,处理请求等发送响应给客户端

  • 相关阅读:
    LeetCode算法题-Factorial Trailing Zeroes(Java实现)
    LeetCode算法题-Excel Sheet Column Number(Java实现)
    FluentData 学习 第一弹
    加油 加油
    FluentData -Micro ORM with a fluent API that makes it simple to query a database
    RX
    创业哲学
    9种新思想
    事件总线 EventBus
    关于 C#和.net 的 发展
  • 原文地址:https://www.cnblogs.com/ingstyle/p/11663452.html
Copyright © 2011-2022 走看看