现在开放平台非常流行,例如微信开放平台、微博开放平台等,开放平台都涉及用户授权问题,OAuth2就是目前的主流授权解决方案
OAuth2是什么
OAuth(Open Authorization,开放授权)是为用户资源的授权定义了一个安全、开放及简单的标准,第三方无需知道用户的账号及密码,就可获取到用户的授权信息
OAuth在"客户端"与"服务提供商"之间,设置了一个授权层,"客户端"不能直接登录"服务提供商",只能登录授权层,以此将用户与客户端区分开 来,"客户端"登录授权层是使用令牌(token),"客户端"登录授权层以后,"服务提供商"根据令牌的权限范围和有效期,向"客户端"开放用户储存的 资料
OAuth2的实现机制
在OAuth2的授权机制中有4个核心对象
(1)Resource Owner(资源拥有者:用户)
(2)Client (第三方接入平台:请求者,例如网站)
(3)Resource Server (资源服务器,存储例如用户信息等资源)
(4)Authorization Server (认证服务器)

(1)用户在第三方应用上点击登录,应用向认证服务器发送请求,说有用户希望进行授权操作,同时说明自己是谁、用户授权完成后的回调url
(2)认证服务器展示给用户自己的授权界面
(3)用户进行授权操作,认证服务器验证成功后,生成一个授权编码code,并跳转到第三方的回调url
(4)第三方应用拿到code后,连同自己在平台上的身份信息(ID密码)发送给认证服务器,再一次进行验证请求,说明自己的身份正确,并且用户也已经授权我了,来换取访问用户资源的权限
(5)认证服务器对请求信息进行验证,如果没问题,就生成访问资源服务器的令牌access_token,交给第三方应用
(6)第三方应用使用access_token向资源服务器请求资源
(7)资源服务器验证access_token成功后返回响应资源

原文地址:https://www.cnblogs.com/chinanetwind/articles/9457842.html

OAuth2实现原理的更多相关文章

  1. OAuth2.0 原理流程及其单点登录和权限控制

    2018年07月26日 07:21:58 kefeng-wang 阅读数:5468更多 所属专栏: Java微服务构架   版权声明:[自由转载-非商用-非衍生-保持署名]-转载请标明作者和出处. h ...

  2. OAuth2.0原理与实现

    弄懂了原理流程,才可以搭建出来.更重要的是,可以根据原理流程自定义搭建,甚至可以完全自己实现一套,最后运行效果和原理和这个对得上就成功了,不要总期待标准答案! 首先参考两篇博客: 阮一峰的博客以及张开 ...

  3. OAuth2授权原理

    最近在做第三方接入的,初步定下使用OAuth2协议,花了些时间对OAuth2的授权方式做了些了解. 我还记得一两年前,跟一位同事聊起互联网时,当时我说过一个想法: 目前不少较为稀有的资源,很多都是论坛 ...

  4. OAuth2.0 原理简介

    写在前面: 在正式介绍OAuth2.0之前我们先来看一个场景:小李是一个文艺小青年, 经常喜欢出去旅游并且把自己旅行中的美景照片分享到各大社交网站上,比如朋友圈,新浪微博.小李马上要向女朋友求婚了,他 ...

  5. Oauth2.0认证原理

    Oauth2.0 认证协议 Oauth2.0 应用场景: 微信联合登录     授权管理 互联网开放平台互相调用保证安全 微信提供api  给toov5调用  然后就可以获取一些微信的信息  比如微信 ...

  6. OAuth2.0 基础概述

    web:http://oauth.net/2/ rfc:http://tools.ietf.org/html/rfc6749 doc:http://oauth.net/documentation/ c ...

  7. OAuth2.0 授权许可 之 Authorization Code

    写在前面: 在前一篇博客<OAuth2.0 原理简介>中我们已经了解了OAuth2.0的原理以及它是如何工作的,那么本篇我们将来聊一聊OAuth的一种授权许可方式:授权码(Authoriz ...

  8. OAuth2的基本概念的理解

    书籍推荐 OAuth2 in Action -- 原理 OAuth2 Cookbook -- 实践 OAuth2 解决的问题域 开放系统间授权 社交联合登录 开放API平台 现代微服务安全 单页浏览器 ...

  9. spring oauth2相关资料

    理解OAuth 2.0  *****http://www.ruanyifeng.com/blog/2014/05/oauth_2_0.html Secure REST API with oauth2 ...

随机推荐

  1. shell脚本编程之变量的小用法

    变量赋值 ${parameter:-word}:如果parameter为空或未定义,则变量展开为"word":否则,展开为parameter的值: ${parameter:+wor ...

  2. 设置多个className

    有时候我们需要有选择地设置多个className function myComponent(props) { const myClassName = { 'aaa', {'bbb': props.ne ...

  3. Cannot read property '_withTask' of undefined

    前言 Cannot read property '_withTask' of undefined 突然一下子,就报这个错了,刚刚还好好呢 Bug分析 1.是在template中调用了某个方法,但是你没 ...

  4. Edusoho之X-Auth-Token

    昨天这篇文章Edusoho之Basic Authentication提到了X-Auth-Token.今天我主要讲的是Edusoho之X-Auth-Token的请求API方式. 至于为什么建议不要用HT ...

  5. 【转】怎么去阅读Chromium的源码?

    同样路过一下. 从初学者角度的话,如果是刚开始研究chromium,建议找个老版本chromium来看.新版太大太复杂了. 我建议从github搜下chromium.bb这个项目,是个chromium ...

  6. Android 属性property_get/property_set

    每个属性都有一个名称和值,他们都是字符串格式.属性被大量使用在Android系统中,用来记录系统设置或进程之间的信息交换.属性是在整个系统中全局可见的.每个进程可以get/set属性. 在系统初始化时 ...

  7. android -------- DES加密解密算法

    DES全称为Data Encryption Standard,即数据加密标准,是一种使用密钥加密的块算法,1977年被美国联邦政府的国家标准局确定为联邦资料处理标准(FIPS),并授权在非密级政府通信 ...

  8. HttpUtils(2)

    import java.io.BufferedReader; import java.io.BufferedWriter; import java.io.InputStreamReader; impo ...

  9. [Math] From Prior to Posterior distribution

    贝叶斯统计推断 后验分布与充分性 无信息先验下的后验分布 共轭先验(conjugacy)下的后验分布 其中,正态分布的共轭先验推导过程,典型且重要. (1) 当方差已知时,均值(prior: 高斯分布 ...

  10. python调用kafka服务(使用kafka-python库)

    试验环境: CDH 5.15.1 CentOS 7 Python 3.7.0 kafka 1.1.1 kafka-python :https://pypi.org/project/kafka-pyth ...