Oauth的官方简介是:随着大量开放平台的出现,创建在开放平台之上的各类第三方应用也在大量冒出,出对安全性和统一标准的要求,因而出现了oauth协议web
简单来讲,OAUTH是一种开放的协议,他能为桌面程序或者基于BS的web应用提供一种简单的标准方式去访问须要用户受权的API(ApplicationProgramming Interface)服务,并且任何第三方均可以使用OAUTH认证服务。在为第三方提供服务的过程当中,他还能起到保护用户帐号安全的做用安全
在项目开发中,咱们常常说认证和受权,常常把他们放到一块儿去描述,那二者在本质上是有区别的,OpenID和OAuth就是咱们说的认证和受权。服务器
OpenID:Authentication 认证加密
OAuth :Authorization 受权spa
简单来讲,咱们能够认为OAuth为咱们解决“用户能(想)作什么”,是“WHAT”的问题,而OpenID则为咱们验证“用户是谁”,是解决“WHO”的问题。对Oauth和OpenId的做用仍是有点抽象,就举个例吧。CSDN使用QQ登陆,进入csdn的登陆页,点击使用QQ登陆,在进入到QQ登陆界面后,最开始是要请求认证,用户输入QQ号和密码,点击登陆,腾讯互联会先进行验证该用户是否为个人用户,若是是个人用户,那么我会通知你(CSDN),他是个人用户,你可使用该帐户登陆你的系统,这个过程就是认证(Authentication),认证就是证实你是谁,你是不是真实存在的,这就是OpenID。token
而在QQ受权登陆下方,有两给CheckBox复选框,能够容许CSDN得到您的昵称、头像、性别,这是在认证以后的事了,在腾讯互联你是我平台的用户后,你能够本身选择CSDN是否有权去获取你的相关信息,当你勾选后,腾讯互联就把你的这些基本信息给了CSDN,这个过程就是受权(Authorization),受权就是肯定了你是谁后,又把属于你的东西给了别人,这个就是OAuth。资源
OAuth有OAuth1.0和OAuth2.0两个版本,两个版本的区别以下:开发
2.0的用户受权过程有3步:io
A)用户到受权服务器,请求受权,而后返回受权码(AuthorizationCode)登录
B)客户端由受权码到受权服务器换取访问令牌(access token)
C)用访问令牌去访问获得受权的资源、
总结:获取受权码(Authorization Code)—>换取访问令牌(access_token)—>访问资源:
1.0的受权分4步,
A)客户端到受权服务器请求一个受权令牌(requesttoken&secret)
B)引导用户到受权服务器请求受权
C)用访问令牌到受权服务器换取访问令牌(accesstoken&secret)
D)用访问令牌去访问获得受权的资源
总结:请求受权令牌(request token&secret)—>换取访问令牌(access token&secret)—>访问资源