首页 > 代码库 > OAuth2.0基础概述

OAuth2.0基础概述

web:http://oauth.net/2/
doc:http://oauth.net/documentation/
code:http://oauth.net/code/

之前做过QQ的联合登录与微信公众平台,基本流程参照文档,也没有太注意OAuth太多细节,最近在与携程会员对接,陆陆续续折腾好几天吧,就花了一点时间研究了下OAuth协议,感觉OAuth大行其道路,得益于微博的推广,另外OAuth与OpenID是比较容易混淆的两个东西,OpenID设计的目的趋向与身份校验,OAuth设计的目的是对用户的资源授权。现阶段一般互联网公司应该都支持OAuth2协议,如新浪,阿里,腾讯等,特点是都拥有大量的用户群,来等待其他开发者与第三方应用的接入,如现在比较火爆的微信公众平台。

什么是OAuth2.0

OAuth2.0是一个开放协议,允许用户让第三方应用以安全且标准的方式获取该用户在某一网站、移动或桌面应用上存储的私密的资源(如用户个人信息、照片、视频、联系人列表),而无需将用户名和密码提供给第三方应用。
OAuth 2.0是OAuth协议的下一版本,但不向后兼容OAuth 1.0。 OAuth 2.0关注客户端开发者的简易性,同时为Web应用,桌面应用和手机,和起居室设备提供专门的认证流程。
OAuth允许用户提供一个令牌,而不是用户名和密码来访问他们存放在特定服务提供者的数据。每一个令牌授权一个特定的网站(例如,视频编辑网站)在特定的时段(例如,接下来的2小时内)内访问特定的资源(例如仅仅是某一相册中的视频)。这样,OAuth允许用户授权第三方网站访问他们存储在另外的服务提供者上的信息,而不需要分享他们的访问许可或他们数据的所有内容。

上面是比较官方的描述,简单些就是OAuth2是由OAuth1.0发展而来,两者不向后兼容,支持多平台设备。以新浪围脖为例,比如我习惯用微博登录一些社交网站,这样发现有意思的东西,可以快速分享到微博上,嗯,我经常这么干。按照流程一般先需要用户到新浪上去授权,登录成功后,在知乎上就可以获得微博上的头像与用户基本信息等。比如我现在使用新浪微博的账户授权登录知乎。

https://api.weibo.com/oauth2/authorize?redirect_uri=http%3A%2F%2Fwww.zhihu.com%2Foauth%2Fauth%2Frequest_sina_token%3Fnext%3D%252Foauth%252Faccount_callback&response_type=code&client_id=3063806388&state=cd8a438eaabbdb6efbbb964edc536648

image

现在想要开发一个基于新浪微博app的第三方应用,并申请appkey和appsecret分别对应OAuth2.0中的client_id 与

OAuth授权

OAuth2.0基础概述