Android腾讯微博之1.0 Oauth认证

(1)什么是Oauth?

Oauth是一个开放的认证协议,让你可以在Web或桌面程序中使用简单而标准的,安全的API认证。

同时,任何第三方都可以使用Oauth认证服务,任何服务提供商都可以实现自身的Oauth认证服务,因而Oauth是开放的。
业界提供了Oauth的多种实现如PHP、JavaScript,Java,Ruby等各种语言开发包,大大节约了程序员的时间,因而Oauth是简易的。
互联网很多服务如Open API,很多大公司如Google,Yahoo,Microsoft等都提供了Oauth认证服务,这些都足以说明Oauth标准逐渐成为开放资源授权的标准。

(2)我们为什么要用Oauth?

网络开放是一个不变的趋势,那么不可避免的会有各种网络服务间分享内容的需要。

举个我们身边例子吧:比如某个公司做了一个应用,想要调用QQ邮箱的联系人列表,现在的方法是你需要在他们应用里输入你的QQ号,QQ密码才能调用,

虽然他们都自谓“不保留QQ用户名和密码”,但是你们相信吗?我们信息已经暴漏给这家公司了,又有谁知道他们到底用没用我们的信息进行一些我们所不允许的事情呢?

OAuth就是为了解决这个问题而诞生的,当我们访问某个公司应用,再调用QQ邮箱的联系人列表,不再提交你的用户名,密码到他们公司而是提交到腾讯公司的服务器。

这样好处自己是安全,而且不会泄露你的隐私给不信任的一方。

再说一个典型案例:

如果一个用户拥有两项服务:一项服务是图片在线存储服务A,另一个是图片在线打印服务B。如

下图所示。由于服务A与服务B是由两家不同的服务提供商提供的,所以用户在这两家服务提供商的网站上各自注册了两个用户,

假设这两个用户名各不相同,密码也各不相同。当用户要使用服务B打印存储在服务A上的图片时,用户该如何处理?

法一:用户可能先将待打印的图片从服务A上下载下来并上传到服务B上打印,这种方式安全但处理比较繁琐,效率低下;

法二:用户将在服务A上注册的用户名与密码提供给服务B,服务B使用用户的帐号再去服务A处下载待打印的图片,这种方式效率是提高了,但是安全性大大降低了,服务B

以使用用户的用户名与密码去服务A上查看甚至篡改用户的资源。

很多公司和个人都尝试解决这类问题,包括Google、Yahoo、Microsoft,这也促使OAUTH项目组的产生。

OAuth是由Blaine Cook、Chris Messina、Larry Halff 及David Recordon共同发起的,目的在于为API访问授权提供一个开放的标准。

(3)Oauth中角色

1.ServiceProvider(服务提供商)    

ServiceProvider通常是网站,在这些网站中保存着用户的一些受限制的资源,例如图片共享网站,博客或者微博系统等。

这些网站通常是使用用户名和密码来确认用户的身份。一方面负责验证用户身份,另一方面保存用户信息。

在我们要开发的腾讯微博客户端的服务提供商就是腾讯开放平台。

2.User(用户)

持有登录网站的用户名、密码,并在网站上保存了一些信息,例如照片等.用户不希望把这些私人信息公开,但是用户却需要将这些信息

共享给其他网站。我们有时却希望能够被另一个应用程序访问。

3.Consumer(客户)

希望访问用户私人信息的应用程序,可以是web应用程序,桌面应用程序或者手机应用程序。Consumer需要授权后才能访问相应资源。

我们所开发的应用程序就是Consumer.我们的应用程序是希望能够访问用户的私人信息的,但是我们又不能够得到用户的用户名和密码,那这个中间就有一个

授权的过程。

4.ProtectedResources

被保护的资源。

(4)Oauth验证流程

对于Consumer来讲他无法得到用户的用户名和密码,那他怎么才能得到用户的某些私人信息呢?基本流程如下:

第一步:某个用户想使用我们创造的应用程序。他无法得到用户的用户名和密码,所以不能直接使用用户的信息。

第二步:Consumer就会向Service Provider请求访问用户的资源。

第三步:Service Provider 就会向用户询问是否可以同意Consumer访问用户的资源。

第四步:如果同意,用户就告诉Service Provider向Consumer授权访问。

第五步:Consumer获的授权。

第六步:Consumer就会服务该用户。Consumer就会向Service Provider取得该用户的一些信息,显示给该用户。

(5)Oauth验证过程

第一步:首先是我们的应用程序也就是Consumer向Service Provider请求一个Token(令牌),然后Service Provider会提供我们一个请求令牌。

第二步:将用户的页面定向到一个验证页面,这个页面不是我们Consumer提供的页面,而是由Service Provider提供的,在我们这就是腾讯提供的验证页面。

在这里输入你的用户名和密码来验证你的身份。从这可以看出用户提交的用户名和密码并没有提交给我们编写的Consumer,而是提交给了Service Provider即腾讯。

这样就能保证用户的用户名和密码不会泄露,不会让第三方知道。

第三步:由Service验证用户输入的用户名和密码是否正确,如果正确就提示登陆成功。

第四步:登陆成功之后再把这个页面重定向到我们自己的页面上。Service就会通知Consumer该用户没问题,同时会分配Consumer一个授权过后的令牌。

第五步:Consumer通过这个授权之后的令牌来换取一个访问令牌,得到这个访问令牌之后我们的验证就结束了。

第六步:通过这个访问令牌就可以访问该用户的私人信息了。

从上面的步骤可以看出,用户始终没有将其用户名与密码等信息提供给使用者(第三方软件),从而更安全。

时间: 2024-12-21 22:20:33

Android腾讯微博之1.0 Oauth认证的相关文章

JS模拟的腾讯微博app撕纸效果

 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content

JS模拟的腾讯微博app撕纸效果的实例代码_javascript技巧

04-262.59MCerberus FTP Server 中文版 2.48FTP软件04-253.55MWeb Page Maker简易网页制作 v3.1网页制作04-25990KRemote Desktop Spy服务器监控.远程控制 v5.2服务器软件04-252.20Kx3389远程端口修改器 1.0服务器软件04-25210K远程桌面3389批量登录软件3.0远程控制04-25789KTable2CSS Table布局转Div+CSS 3.0! 04-2314.1Mjre1.6下载 |

新浪微博Oauth2.0授权认证及SDK、API的使用(Android)

---------------------------------------------------------------------------------------------- [版权申明:本文系作者原创,转载请注明出处] 文章出处:http://blog.csdn.net/sdksdk0/article/details/51939853作者:朱培      ID:sdksdk0      邮箱: zhupei@tianfang1314.cn    -----------------

我的网站想和腾讯微博同步请问怎么做

问题描述 我的网站想和腾讯微博同步请问怎么做官方网站http://www.shfdq.com 解决方案 你说的同步是指你网站的微博同步到腾讯是吧?你可以腾讯的开放平台填写相关资料http://connect.qq.com/manage/index然后使用oauth apihttp://wiki.connect.qq.com/OAuth2.0%E5%BC%80%E5%8F%91%E6%96%87%E6%A1%A3和微博分享apihttp://wiki.connect.qq.com/add_pic_

jQuery实现仿腾讯微博滑出效果报告每日天气的方法

  本文实例讲述了jQuery实现仿腾讯微博滑出效果报告每日天气的方法.分享给大家供大家参考.具体分析如下: 这是仿腾讯微博滑出效果的每日天气代码,鼠标放上去,天气内容将从左向右滑出来,像开抽屉一样,本动画效果流畅,当然少不了jQuery的功劳,本代码使用了1.6.2版本的jQuery插件来实现这一功能. ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 3

jQuery实现仿腾讯微博滑出效果报告每日天气的方法_jquery

本文实例讲述了jQuery实现仿腾讯微博滑出效果报告每日天气的方法.分享给大家供大家参考.具体分析如下: 这是仿腾讯微博滑出效果的每日天气代码,鼠标放上去,天气内容将从左向右滑出来,像开抽屉一样,本动画效果流畅,当然少不了jQuery的功劳,本代码使用了1.6.2版本的jQuery插件来实现这一功能. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/

谈谈腾讯微博新版和电子地图入口之争

今天凌晨笔者有幸体验了腾讯微博的新版,同时要开心的宣布下,在笔者发了六万多条微博后,腾讯微博的粉丝突破196万大关.本次腾讯微博的新版升级可谓静悄悄,没有做任何大肆的宣传,但是笔者还是发现了不少非常不错创新.首先增加了相关热点功能,这对媒体账号和企业官方账号.用户的自发热点话题,是不错福音了!自动汇聚话题热点.还可以直接播放微博上面的音乐和视频,无需跳转,最给力的还是增加了腾讯微博街景功能,这点很赞,当你选择广场的每日街景会展示一个经典的街景地图. 笔者使用这个街景地图功能,觉得真的很牛.所有街

大数据秒更新——腾讯微博奥运指数上线演绎奥运热情

根据腾讯微博奥运指数实时显示,由郎朗在英国 伦敦奥运会开幕式圣火点燃之时发出的这篇微博,经由数万 网友的热烈互动,以 6个小时超过50万的互动量成为"互动量NO1" 根据腾讯微博奥运指数实时显示,由郎朗在英国伦敦奥运会开幕式圣火点燃之时发出的这篇微博,经由数万网友的热烈互动,以6个小时超过50万的互动量成为"互动量NO1" 迎接2012伦敦奥运会,腾讯微博举平台之力打造的几款重磅产品:奥运微频道.微观奥运.奥运助威团等陆续上线,而在昨日开幕式前夕上线的"奥

国务院信息平台腾讯微博微信上线

南方日报讯(记者/闫昆仑)昨日,中华人民共和国中央人民政府门户网站官方微博和官方微信在腾讯微博和微信开通,是国务院 政府信息公开的又一重要平台.国务院重要政务信息将第一时间通过微博微信等新媒体形式,向社会公众公开.微博用户可登录中国政府网官方微博主页(腾讯微博网址http://t.qq.com/zhengfu)或扫描中国政府网微博二维码加关注,微信用户可通过微信账号搜索中国政府网或扫描中国政府网微信二维码加为好友.中国政府网官方微博和微信主要发布国务院领导同志政务活动信息.国务院重要会议信息.国