OAuth认证与授权

什么是OAuth授权?

一、什么是OAuth协议
OAuth(开放授权)是一个开放标准。
允许第三方网站在用户授权的前提下访问在用户在服务商那里存储的各种信息。
而这种授权无需将用户提供用户名和密码提供给该第三方网站。
OAuth允许用户提供一个令牌给第三方网站,一个令牌对应一个特定的第三方网站,同时该令牌只能在特定的时间内访问特定的资源。
二、OAuth的原理和授权流程
OAuth的认证和授权的过程中涉及的三方包括:
服务商:用户使用服务的提供方,一般用来存消息、储照片、视频、联系人、文件等(比如Twitter、Sina微波等)。
用  户:服务商的用户
第三方:通常是网站,该网站想要访问用户存储在服务商那里的信息。
比如某个提供照片打印服务的网站,用户想在那里打印自己存在服务商那里的网络相册。
在认证过程之前,第三方需要先向服务商申请第三方服务的唯一标识。
OAuth认证和授权的过程如下:
1、用户访问第三方网站网站,想对用户存放在服务商的某些资源进行操作。
2、第三方网站向服务商请求一个临时令牌。
3、服务商验证第三方网站的身份后,授予一个临时令牌。
4、第三方网站获得临时令牌后,将用户导向至服务商的授权页面请求用户授权,然后这个过程中将临时令牌和第三方网站的返回地址发送给服务商。
5、用户在服务商的授权页面上输入自己的用户名和密码,授权第三方网站访问所相应的资源。
6、授权成功后,服务商将用户导向第三方网站的返回地址。
7、第三方网站根据临时令牌从服务商那里获取访问令牌。
8、服务商根据令牌和用户的授权情况授予第三方网站访问令牌。
9、第三方网站使用获取到的访问令牌访问存放在服务商的对应的用户资源。
三、目前支持OAuth的网站有哪些?
t.sina.com.cn
t.qq.com
t.sohu.com
t.163.com
www.douban.com
www.twitter.com
www.facebook.com
Google Buzz

文件来源于:http://www.6zou.net/tech/what_is_oauth.html 

 

 

 

所谓OAuth(即Open Authorization,开放授权),它是为用户资源授权提供了一种安全简单的标准,也就是说用户在访问第三方web或应用的时候,第三方不会知道用户的信息(登录密码等),现在基本都支持OAuth2.0版本了。

首先来看看我们在第三方使用oauth流程如下:

第一步:用户登录第三方网站,使用qq登录。

第二步:点击登录后,会跳到qq平台提示输入用户名和密码。

第三步:如果用户名和密码正确,会提示是否接受授权,如果授权成功,第三方网站就能访问你的资源了,qq头像、用户名等

 

认证和授权过程(包括三方)

 

  1、服务提供方,用户使用服务提供方来存储受保护的资源,如照片,视频,联系人列表。

  2、用户,存放在服务提供方的受保护的资源的拥有者。

  3、客户端,要访问服务提供方资源的第三方应用,通常是网站。在认证过程之前,客户端要向服务提供者申请客户端标识。

 

 

       用户访问客户端的网站,想操作用户存放在服务提供方的资源。

  客户端向服务提供方请求一个临时令牌。

  服务提供方验证客户端的身份后,授予一个临时令牌。

  客户端获得临时令牌后,将用户引导至服务提供方的授权页面请求用户授权。在这个过程中将临时令牌和客户端的回调连接发送给服务提供方。

  用户在服务提供方的网页上输入用户名和密码,然后授权该客户端访问所请求的资源。

  授权成功后,服务提供方引导用户返回客户端的网页,并返回已授权的临时凭证。

  客户端根据已授权的临时令牌从服务提供方那里获取访问令牌。

  服务提供方根据临时令牌和用户的授权情况授予客户端访问令牌。

  客户端使用获取的访问令牌访问该用户存放在服务提供方上的受保护的资源。(客户端只能访问给予它授权的用户的资源信息)

 转自 :http://justcoding.iteye.com/blog/1950270

转载于:https://www.cnblogs.com/cnmenglang/p/6297592.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/284831.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

SegmentFault Hackathon 文艺复兴

我有一个 idea,我想实现它,我正实现它,我已实现它。世界上存在一些好奇心旺盛、不爱墨守成规的人,略微偏执但又极度投入的他们崇尚自由,热衷用技术实现自己的想法,他们带着不羁的态度生活,利用编…

卧槽!VS Code 上竟然也能画流程图了???

作为一款开源的主流代码编辑器,VSCode 在发布之后一直受到不少开发者的喜爱。 此前,我们也曾在公众号上分享过多篇文章,向大家推荐了不少 VSCode 上比较实用(或沙雕)的插件。因此,有很多水友也经常调侃道&…

【QGIS入门实战精品教程】14.1:QGIS如何加载各种在线地图?

文章目录 一、XYZ Tiles连接方式二、插件添加三、WMS/WMTS/OWS连接方式一、XYZ Tiles连接方式 1. 加载OpenStreetMap QGIS默认可以加载OpenStreetMap地图。在左侧点击XYZ Tiles,默认下面有个OpenStreetMap选项,双击打右侧会显示地图,如下图所示: 在OpenStreetMap上右键→…

SkiaSharp 之 WPF 自绘时钟(案例版)

SkiaSharp是一个跨平台2D图形API,用于.NET平台,基于Googles Skia Graphics库(skia.org网站). 它提供了一个全面的2D API,可以跨移动、服务器和桌面模型来渲染图像。该图形库可实现获取指定坐标像素值、绘制2d图形、绘制文字(必须有…

推荐一简单易用的脑图制作工具

幕布是什么? 大纲文档工具,管理你的大脑层级折叠文字,结构化思考助手一键转换思维导图并编辑,效率翻倍幕布可以做什么? 大纲笔记,思维整理 学习笔记清单工具 管理日程管理待办购物清单等等内容创作会议记录…

【QGIS入门实战精品教程】4.5:QGIS打开Excel中的点坐标,并生成矢量文件

QGIS中可以很方便添加Excel或其他文本格式的点坐标,并将其转为矢量等多种格式的文件。 扩展阅读: 【ArcGIS风暴】ArcGIS 10.2导入Excel数据X、Y坐标(经纬度、平面坐标),生成Shapefile点数据图层 文章目录 1. 数据准备2. 添加数据3. 保存文矢量文件1. 数据准备 本实验使用…

腾讯云EKS 上部署 eshopondapr

腾讯云容器服务(Tencent Kubernetes Engine,TKE)基于原生 kubernetes 提供以容器为核心的、高度可扩展的高性能容器管理服务。腾讯云容器服务完全兼容原生 kubernetes API ,扩展了腾讯云的云硬盘、负载均衡等 kubernetes 插件&…

[转]一往无前 | 小米十周年,雷军公开演讲全文

2020年8月11日19:30,小米十周年,雷军公开演讲如约而至。在近3小时的演讲中,雷军用20个故事回顾了小米过去的热血10年,也展望了新的10年: - 创新之火将会照亮每个疯狂的想法,小米将成为工程师向往的圣地。 -…

JAVA单例之我见

为什么80%的码农都做不了架构师?>>> 单例模式作为设计模式中最简单的一种,是一个被说烂了的东西。但是在项目中还是会发现关于单例模式的一些错误实现,可见单例也并不是我们想象的那么简单。最近陆陆续续看了几篇关于单例的博客&…

「刘一哥GIS」系列专栏《QGIS入门实战精品教程(配套案例数据)》

「刘一哥GIS」系列专栏《QGIS入门实战精品教程(配套案例数据)》全新上线了,欢迎广大GISer朋友关注,一起探索GIS奥秘,分享GIS价值! 本专栏以实战案例的形式,深入浅出地介绍了QGIS的基本使用方法&…

MyEclipse的Git配置

1.下载:git的插件egit 并解压 插件 下载地址:http://www.eclipse.org/egit/download/ 所有版本:http://wiki.eclipse.org/EGit/FAQ#Where_can_I_find_older_releases_of_EGit.3F 2.在MyEclipse安装目录下的dropins文件夹下创建egit文件夹 3.…

VSCode 插件开发实例(WebView):微信读书 ^-^边撸代码边看小说^-^

最终效果 主要代码 package.json {"name": "WeReadForVSCodeJackieZheng","repository": {"type": "git","url": "https://github.com/JackieZheng/WeReadForVSCode.git"},"displayName": &q…

【QGIS入门实战精品教程】4.7:QGIS如何将矢量数据转为GeoJSON格式?

本文以案例的形式,讲述在QGIS专业软件中,将矢量数据转为GeoJSON的方法。 扩展阅读: 【ArcGIS风暴】如何将矢量数据(点、线、面)折点坐标转为GeoJSON格式? 在QGIS中,可以直接将数据导出为GeoJSON格式。具体操作方法是:右键矢量数据图层→导出图层→到文件,如下图所示:…

Git的纯命令操作,Install,Clone , Commit,Push,Pull,版本回退,撤销更新,分支的创建/切换/更新/提交/合并,代码冲突...

Git的纯命令操作,Install,Clone , Commit,Push,Pull,版本回退,撤销更新,分支的创建/切换/更新/提交/合并,代码冲突 这篇是接着上篇分布式版本库——Windows下Git的环境部署以及在Git…

【QGIS入门实战精品教程】3.3:QGIS如何打开ArcGIS创建的文件数据库(GDB)?

在行业应用中,GIS地理空间数据往往存储在ESRI ArcGIS的文件地理数据库(File GeodataBase),因此,ArcGIS与QGIS的数据交互、共享就显得非常重要。QGIS3可以直接打开File GDB数据,并对数据进行显示、查看、处理等操作。具体的步骤如下: 相关阅读:【QGIS入门实战精品教程】3…

.NET 6 Linux 系统服务 Systemd (案例版)

.Net Core Windows 系统服务,之前已经写过了,但是,对于Linux的系统服务,却没有写过,主要是因为,大部分Linux的.Net服务都直接Docker了,当然,不排除有这种使用的,可能搞成…

[转]IaaS、PaaS、SaaS、CaaS、MaaS五者的区别

云计算构架图 很明显,这五者之间主要的区别在于第一个单词,而aaS都是as-a-service(即服务)的意思,这五个模式都是近年来兴起的,且这五者都是云计算的落地产品,所以我们先来了解一下云…

聊聊 C++ 中的四种类型转换符

一:背景 在玩 C 的时候,经常会用 void* 来指向一段内存地址开端,然后再将其强转成尺度更小的 char* 或 int* 来丈量一段内存,参考如下代码:int main() {void* ptr malloc(sizeof(int) * 10);int* int_ptr (int*)ptr;…

【QGIS入门实战精品教程】3.1:QGIS如何连接SQL Server数据库?

文章目录 软件必备测试SQL Server服务是否启动QGIS与SQL Server建立连接软件必备 SQL Server 2008 R2QGIS 3.22.3测试SQL Server服务是否启动 打开SQL Server配置管理器,查看MSSQLSERVER服务的启动情况。

开源重量级的流程引擎或UI引擎

关注这两个方面的同学个踊跃加粉了~~同时在下面回复期望开源哪一个&#xff0c;将先开源呼声高的一个。 好吧&#xff0c;先小秀一下UI&#xff1a; 增加下面的pom依赖&#xff0c;表示此工程需要org.tinygroup.aerowindow ?12345<dependency> <groupId>org.tinyg…