现在开放平台非常流行,例如微信开放平台、微博开放平台等,开放平台都涉及用户授权问题,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. 如何学习uni-app?

    uni-app 是一个使用 Vue.js 开发跨平台应用的前端框架. 开发者通过编写 Vue.js 代码,uni-app 将其编译到iOS.Android.微信小程序.H5等多个平台,保证其正确运行并 ...

  2. 廖雪峰Python笔记

    △命令行模式和Python交互模式 在Windows开始菜单选择“命令提示符”,就进入到命令行模式,它的提示符类似C:\>:在命令行模式下敲命令python,就看到类似如下的一堆文本输出,然后就 ...

  3. shell 修改文件所有者

    chown   用户名   文件名  -R

  4. manjaro arm在rock pi4b中的配置记录:

    首先说明下我的硬件情况,网上买了: 主要有emmc的转接板,主要是写入emmc镜像使用,32G的emmc,打算安装个android用来看电子书够了.需要自备读卡器,资料太少了,么有说明,考虑了1个多小 ...

  5. 京东Java架构师讲解购物车的原理及Java实现

    今天来写一下关于购物车的东西, 这里首先抛出四个问题: 1)用户没登陆用户名和密码,添加商品, 关闭浏览器再打开后 不登录用户名和密码问:购物车商品还在吗? 2)用户登陆了用户名密码,添加商品,关闭浏 ...

  6. required string parameter 'XXX'is not present 的几种情况

    required string parameter 'XXX'is not present 的几种情况 情况一:原因是由于头文件类型不对,可以在MediaType中选择合适的类型,例如GET和POST ...

  7. C# System.Web.Mail.MailMessage 发邮件

    C# System.Web.Mail.MailMessage 发邮件 新建控制台Console项目,然后添加 System.Web引用 代码如下: using System; using System ...

  8. 【postman】api开发必备神器

    1.使用参考:https://blog.csdn.net/fxbin123/article/details/80428216 2.win 下载地址:Postman for windows X64    ...

  9. xadmin插件

    from django.http import HttpResponse from xadmin.plugins.actions import BaseActionView class test(Ba ...

  10. Jmeter-Critical Section Controller(临界区控制器)(还没看,是一个控制请求按顺序执行的东东)

    The Critical Section Controller ensures that its children elements (samplers/controllers, etc.) will ...