谈谈我对OAuth的理解
自己的理解是,OAuth是一种授权标准.
用于为除了用户之外的第三方应用授权,
并且在授权过程中,第三方应用不会接触到用户的任何信息,
授权完成后,第三方应用可访问用户授权范围内的信息.
举个例子,目前有很多网站都可以用 QQ,新浪等账号来登录,QQ和新浪用的就是这种授权模式.
首先 用户访问第三方网站的页面,点击用QQ号登录时,跳转到QQ号登录和授权相关的页面,
在这个过程中,第三方的页面不可能得到QQ号或密码.
在QQ的页面登录成功后,会让用户选择要授予的权限范围..比如访问昵称,头像等权限..
完成之后,在跳转回第三方页面的同时,QQ的服务器会在与第三方页面的Session中加上这个token.
当第三方页面通过QQ服务器来获取用户信息时,服务器通过token来决定可对第三方页面提供的信息范围.
这是我个人对OAuth的理解,如果您有什么不同的看法欢迎留言讨论.
==============================================================
下边是从网上找来的信息:
OAuth是一个关于授权(authorization)的开放网络标准,在全世界得到广泛应用,目前的版本是2.0版
名词定义
在详细讲解OAuth 2.0之前,需要了解几个专用名词。它们对读懂后面的讲解,尤其是几张图,至关重要。
(1) Third-party application:第三方应用程序,本文中又称"客户端"(client),即上一节例子中的"云冲印"。
(2)HTTP service:HTTP服务提供商,本文中简称"服务提供商",即上一节例子中的Google。
(3)Resource Owner:资源所有者,本文中又称"用户"(user)。
(4)User Agent:用户代理,本文中就是指浏览器。
(5)Authorization server:认证服务器,即服务提供商专门用来处理认证的服务器。
(6)Resource server:资源服务器,即服务提供商存放用户生成的资源的服务器。它与认证服务器,可以是同一台服务器,也可以是不同的服务器。
知道了上面这些名词,就不难理解,OAuth的作用就是让"客户端"安全可控地获取"用户"的授权,与"服务商提供商"进行互动。
(A)用户打开客户端以后,客户端要求用户给予授权。
(B)用户同意给予客户端授权。
(C)客户端使用上一步获得的授权,向认证服务器申请令牌。
(D)认证服务器对客户端进行认证以后,确认无误,同意发放令牌。
(E)客户端使用令牌,向资源服务器申请获取资源。
(F)资源服务器确认令牌无误,同意向客户端开放资源。