zoukankan      html  css  js  c++  java
  • OAuth2认证和授权入门

    OAuth2四种授权方式

    四种授权方式

    OAuth 2.0定义了四种授权方式。

    • 密码模式(resource owner password credentials)
    • 授权码模式(authorization code)
    • 简化模式(implicit)
    • 客户端模式(client credentials)

    密码模式(resource owner password credentials

    • 这种模式是最不推荐的,因为client可能存了用户密码
    • 这种模式主要用来做遗留项目升级为oauth2的适配方案
    • 当然如果client是自家的应用,也是可以
    • 支持refresh token

    授权码模式(authorization code

    • 这种模式算是正宗的oauth2的授权模式
    • 设计了auth code,通过这个code再获取token
    • 支持refresh token

    简化模式(implicit

    • 这种模式比授权码模式少了code环节,回调url直接携带token
    • 这种模式的使用场景是基于浏览器的应用
    • 这种模式基于安全性考虑,建议把token时效设置短一些
    • 不支持refresh token

    客户端模式(client credentials

    • 这种模式直接根据client的id和密钥即可获取token,无需用户参与
    • 这种模式比较合适消费api的后端服务,比如拉取一组用户信息等
    • 不支持refresh token,主要是没有必要

    refresh token的初衷主要是为了用户体验不想用户重复输入账号密码来换取新token,因而设计了refresh token用于换取新token 这种模式由于没有用户参与,而且也不需要用户账号密码,仅仅根据自己的id和密钥就可以换取新token,因而没必要refresh token

    • 密码模式(resource owner password credentials)(为遗留系统设计)(支持refresh token)
    • 授权码模式(authorization code)(正宗方式)(支持refresh token)
    • 简化模式(implicit)(为web浏览器应用设计)(不支持refresh token)
    • 客户端模式(client credentials)(为后台api服务消费者设计)(不支持refresh token)

    参考:

    https://cloud.tencent.com/developer/article/1340117

    http://www.ruanyifeng.com/blog/2014/05/oauth_2_0.html

  • 相关阅读:
    python-进阶-优雅的python写法
    springMVC3学习(十一)--文件上传CommonsMultipartFile
    springMVC3学习(十)--注解式控制器
    CSS3/jQuery自定义弹出窗口
    window.open()详解及浏览器兼容性问题
    空格&nbsp在不同浏览器中显示距离不一致问题解决方法
    jQuery拖动调整表格列宽度-resizableColumns
    jQuery表格排序组件-tablesorter
    springMVC3学习(九)--redirect和forward跳转
    springMVC3学习(八)--全局的异常处理
  • 原文地址:https://www.cnblogs.com/nsky/p/10349111.html
Copyright © 2011-2022 走看看