文档章节

【OAuth2学习之路】简介

666B
 666B
发布于 2014/09/09 22:33
字数 812
阅读 4395
收藏 4

OAuth是什么?

    OAuth是Open Authorization(开放授权)的简写,是一个开放标准,允许用户让第三方应用访问该用户在某一网站上存储的私密的资源(如照片,视频,联系人列表),而无需将用户名和密码提供给第三方应用。

    OAuth允许用户提供一个令牌,而不是用户名和密码来访问他们存放在特定服务提供者的数据。每一个令牌授权一个特定的网站(例如,视频编辑网站)在特定的时段(例如,接下来的2小时内)内访问特定的资源(例如仅仅是某一相册中的视频)。这样,OAuth让用户可以授权第三方网站访问他们存储在另外服务提供者的某些特定信息,而非所有内容。

    OAuth是OpenID的一个补充,但是完全不同的服务。

    要更形象的理解什么是OAuth,可以看如下的一个实际的举例:    

如果你开车去酒店赴宴,你经常会苦于找不到停车位而耽误很多时间。是否有好办法可以避免这个问题呢?有的,听说有一些豪车的车主就不担心这个问题。 豪车一般配备两种钥匙:主钥匙和泊车钥匙。当你到酒店后,只需要将泊车钥匙交给服务生,停车的事情就由服务生去处理。与主钥匙相比,这种泊车钥匙的使用功 能是受限制的:它只能启动发动机并让车行驶一段有限的距离,可以锁车,但无法打开后备箱,无法使用车内其他设备。这里就体现了一种简单的“开放授权”思 想:通过一把泊车钥匙,车主便能将汽车的部分使用功能(如启动发动机、行驶一段有限的距离)授权给服务生。


    (以上摘自网络)

    这就是授权。看完上面应该对什么是OAuth应该有一个初步的了解了,但是要应用的开发中这些东西根本没什么作用?如果想了解更多这个开放标准的话,你可以去官网,也可以看RFC6749,这都是纯粹的理论。

OAuth是干什么的?

    了解了OAuth是什么了?OAuth是干什么的,也就显而易见的了,就是为了将自己的资源以有使用权限的方式开放出去。

为什么会有OAuth?

    为什么会要OAuth?因为OAuth能干只有他自己能干的事?所以产生了它。

OAuth1 和OAuth2

    简而言之,OAuth2是OAuth1的第二版本,但是OAuth2更加简单,本文讲的也都是OAuth2。可以参看wikipedia

OAuth2的Java实现

    OAuth2各种平台的实现都有,我现在只是看Java的实现,Java的实现的有如下几个版本:


    本教程将学习的是Spring Security for OAuth。


© 著作权归作者所有

666B
粉丝 33
博文 93
码字总数 33638
作品 0
深圳
程序员
私信 提问
第64章 学习 - Identity Server 4 中文文档(v1.0.0)

以下是一些在线,远程和课堂培训选项,以了解有关ASP.NET Core Identity和IdentityServer4的更多信息。 64.1 现代应用程序的身份和访问控制(使用ASP.NET Core 2和IdentityServer4) 这是我们...

ThinksJay
04/28
0
0
javadever/spring-boot

spring-boot 概述 java 语言经过了多年的发展,生态系统完善,完全满足企业级应用。如果技术选型得当,对常用功能组件有积累,可以快速搭建系统,把主要精力放在业务逻辑上。 本项目尝试利用...

javadever
2016/03/10
0
0
Spring Boot Security 整合 OAuth2 设计安全API接口服务

文章首发于公众号《程序员果果》 地址:https://mp.weixin.qq.com/s/0PAUErDh0qmcR4SUsTn15Q 简介 OAuth是一个关于授权(authorization)的开放网络标准,在全世界得到广泛应用,目前的版本是...

公众号:程序员果果
05/21
0
0
滴滴裁员2000,赔偿方案已出!程序员:我很开心!

上周,滴滴CEO程维宣布:正式做好过冬准备!整体裁员比例占到全员的15%,涉及2000人左右。 据了解20日补偿方案如下:补偿一般为N+1个月,如果本周能确认,再额外给一个月补偿——有滴滴员工证...

程序员小灰
02/28
0
0
【OAuth2学习之路】Spring Security OAuth官网文档翻译

现将开发文档翻译出来,因为看英文实在是比较吃力的。 首先看下官方的指南Developers Guide,OAuth的两个版都都有。本文看的是OAuth2的开发指南。 翻译如下: Spring Security OAuth2开发指南...

666B
2014/09/09
0
0

没有更多内容

加载失败,请刷新页面

加载更多

Java编程学习-Java虚拟机(JVM)以及跨平台原理

相信大家已经了解到Java具有跨平台的特性,可以“一次编译,到处运行”,在Windows下编写的程序,无需任何修改就可以在Linux下运行,这是C和C++很难做到的。 那么,跨平台是怎样实现的呢?这...

Java领航员
15分钟前
0
0
学JFinal不迷路,JFinal优质资源列表(欢迎反馈更新)

学JFinal不迷路,记录一下JFinal相关的资源、产品、讲师等信息(所有信息排名不分先后)。 一、相关站点: 1、JFinal官网-问答、分享、文档、交流、俱乐部 http://www.jfinal.com 2 、JFina...

山东-小木
19分钟前
0
0
项目学习(2)-order-job

在当前的系统中,因为并发量并不高,服务之间发起异步请求或者异步调用时,没有使用到消息中间件。 而是在各个服务(子系统)的数据库中,创建了event_queue事件对列表和event_handler事件处...

太猪-YJ
27分钟前
0
0
gradle grovvy中的闭包

1. 无参数的闭包 //这b1就是一个闭包def b1={ println "hello b1"}//定义方法,包含闭包类型的参数def method1(Closure closure){closure()}//执行method1method1(b1) 执行结果 ...

edison_kwok
今天
3
0
基于Spring Boot + Dubbo的全链路日志追踪(一)

一、 概要 当前公司后端整体架构为:Spring Boot + Dubbo。由于早期项目进度等原因,对日志这块没有统一的规范,基本上是每个项目自己管自己的日志。这也对后面的问题排查带来了很大的困难,...

明天以后
今天
7
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部