Dev Guide: js | css | HTML(DOM) WEBCAST .NET4 Lib Web.config-WCF MVC3-EF4.1 T-SQL-(2012)

OAuth 2.0 - 基本介绍

前言:最近讨论园子里是否真末落的话题那可是沸沸扬扬啊!我就不凑这个热闹了!在此吐点最近在整的东西出来给大家!

I:OAuth 2.0 概述

首先大家来看看国内新浪跟腾讯这两大头对OAuth 2.0是怎么个用官方语言去阐述的:

新浪:OAuth2.0是从2006年开始设计OAuth协议的下一个版本,OAuth2.0同时提供Web,桌面和移动应用程序的支持,并较1.0相比整个授权验证流程更简单更安全。也是新浪微博开放平台未来最主要的用户身份验证和授权方式。

腾讯:腾讯微博开放平台,是基于腾讯微博系统,为广大开发者和用户提供的开放数据分享与传播平台。

广大开发者和用户登录平台后,就可以使用平台提供的开放API接口,创建应用从微博系统获取信息,或将新的信息传播到整个微博系统中,丰富多样的API接口和应用,加上您的智慧,将创造出无穷的应用和乐趣。

在使用腾讯微博平台提供的API前,您需要做以下两步工作:

成为开发者,并申请appkey和appsecret
授权获取accesstoken
Accesstoken是第三方获得用户授权的凭证,是第三方访问api资源的票据。目前,腾讯微博采用Oauth2.0协议对第三方进行授权,相对Oauth1.0来说,Oauth2.0具有更加简单和安全特点。

老外的介绍链接 & 百度百科

相比之下我说一下我个人的理解!OAuth是一种允许你的应用访问到腾讯微博,新浪微博开放平台上的用户数据,而且是在不需要取得用户个人密码的情况下。所以可以说OAuth 2.0是一个互联网标准协议(OAuth 2.0基于https)。

image

II:OAuth 2.0在国内支持的授权方式

1.Authorization Code方式(新浪,腾讯都支持)

Authorization Code授权方式是专门提供给第三方WEB应用的。目前国内的新浪微博,腾讯开放平台都支持Authorization Code授权方式,下面我将发布一些图片让大家对于这种授权方式有一种更为直观的了解。

image

进入我的测试站时。如果用户已经有了新浪微博或腾讯微博的账户那么他可以直接点击下面的链接进行跳转授权验证。如下图

image
image
从上图的地址栏信息可以知道~~用户的密码始终没有对我的第三方应用暴露。

当用户对我的第三方应用授权了以后,我将可以很轻松地读取用户个人信息和发送测试微博。
image
腾讯接口返回的用户信息

image
新浪微博返回的用户信息



image
发送的测试微博信息

以上的登陆授权示例就是我推荐使用的Authorization Code授权方式
在这个模式下AccessToken没有透露在地址栏上~用户密码也没有暴露在我的第三方应用当中!这里可以看出OAuth2.0相比OAuth1.0来说更简单,更安全(https)

2.Resource Owner Password Credentials方式(新浪支持)

楼主不研究这个,因为这个是新浪提供的。腾讯微博未发现支持这种这么犀利的验证方式,居然允许第三方应用取得用户密码。。。。

3.Implicit Grant方式(新浪,腾讯都支持)

楼主也不研究这个,因为这个方式允许AccessToken暴露在用户的Url上。

 

III:总结

好了,博主dotNetDR_目前只在Web开发当中运用到OAuth 2.0,所以这个系列往后也只涉及OAuth2.0里面的Authorization Code验证授权模式,除了它以外的OAuth 2.0其他授权模式各位同学有需要的话请自行研究。

项目代码截图
image

谢谢,本文到此结束!

posted @ 2012-07-05 11:32  dotNetDR_  阅读(29362)  评论(12编辑  收藏  举报