一、OAuth协议简介
OAuth授权在各社交网站中广泛使用,该协议使用户不需要直接向第三方应用提供用户名及密码,并且使一个账户在多个网站中使用成为可能,OAuth协议的细节描述可参考其官方网站:http://oauth.net
目前OAuth 1.0已经出了final version,即RFC 5849,OAuth 2.0也已在起草中。
这篇文章中,我想用比较通俗的语言来解释OAuth协议。
OAuth协议中包含了三个角色:
Service Provdier,即服务提供者,如新浪微博;
User,即普通用户,如新浪微博用户;
Consumer,即第三方应用,如本人开发的应用。
现有如下场景:User想利用Consumer来更新自己在Service Provider中的状态,但此时Service Provider并不信任Consumer,且User也不想把帐号和密码告诉Consumer,于是三者之间需要建立起信任关系。
Consumer首先要向Service Provider申请一对Consumer_Key和Consumer_Secret,以此取得Service Provider的信任。因为User是信任Service Provider的,所以User与Consumer间的信任关系需要借助Service Provider来建立。
Consumer用自己的Consumer_Key和Consumer_Secret向Service Provider请求到一对Request_Token和Request_Token_Secret,而后Consumer拿上这对RequestToken,领着User去见Service Provider。Service Provider见到自己发的RequestToken,便确认Consumer是值得信任的,于是把头转向User。如果Service Provider不记得User了,只要User向Service Provider提供用户名和密码,就能建立起信任关系。然后Service Provider对User说:“我很信任这个Consumer,你是不是也要信任他?”,若User确认,则Service Provider允许Consumer把User带回去,并发给Consumer一个Verifier.
回来以后,Consumer拿着RequestToken和Verifier又单独去找Service Provider,取回来一对Access_Token和Access_Token_Secret,并长期保存。
至此,三方信任关系就建立起来了,Consumer每次在Service Provider中更新User的状态时,只需要提供这对AccessToken,Service Provider便能确定此Consumer能代替User进行相应的操作。
在使用相关OAuth库进行开发时,所需要的关键字在以上场景中都有体现,包括:
Consumer_Key, Consumer_Secret, Request_Token, Request_Token_Secret, Verifier, Access_Token, Access_Token_Secret
分享到:
相关推荐
新浪微博OAuth授权的Java实现.pdf
新浪微博OAuth授权的Java实现,这篇文章中,我想用比较通俗的语言来解释OAuth协议。
这个是一个新浪的Oauth授权的demo,这个demo可以通用。
对不起,我不得不给这个资源挂上分数,因为该死的CSDN非要折腾个这垃圾功能,我要下载别人的东西没积分没办法....这个里面包括代码,我整理的word笔记文档。 只是我觉得这远远不够,过几天我会录制一个视频,因为我...
Android版新浪、网易、腾讯、搜狐微博OAuth认证实例集,想更多了解OAuth认证的朋友,请下载java源码包,在示例中完整解析了OAuth认证的过程:定义URL编码方式,请求url,得到注册应用后服务商提供的key和secret,...
主要介绍了Java使用新浪微博API开发微博应用的基本方法,文中还给出了一个不使用任何SDK实现Oauth授权并实现简单的发布微博功能的实现方法,需要的朋友可以参考下
使用'mechanize'写的对于新浪的Oauth2取得access_token.
weibo4j 或者叫 sinat4j 是新浪微博的 Java 客户端开发包,支持Basic Auth, OAuth, 上传图片,头像,地理位置等功能。 示例代码: package weibo4j.examples; import weibo4j.Status; import weibo4j.Weibo; ...
oauth2.0授权界面,大致流程图: 前提准备: 在新浪开放平台申请appkey和...大致思路如下:建立一个webview加载授权界面,授权回调地址请参考Constants.java里面有详细注解。页面加载时会回调该方法,如果用户同意
2种方法Java调用新浪微博接口示例,一种是不使用任何Sdk自己实现Oauth授权,然后实现简单的发布微博功能,另一个是使用weibo4j-oauth2这个SDK做一个简单的抢沙发工具,全部代码都有详细的注释,有问题可以通过以下...
ROST 新浪定时监控工具,基于新浪微博Oauth模式认证下调用新浪微博api抓取新浪微博数据,支持实时(最少5秒钟抓取更新一次)抓取数据。数据包括微博作者、作者VIP判断、微博内容、发布时间、抓发评论数、如果是转发...
主要介绍了Java使用新浪微博API通过账号密码方式登陆微博的实例,一般来说第三方App都是采用OAuth授权认证然后跳转之类的方法,而本文所介绍的账号方式则更具有自由度,需要的朋友可以参考下
在微博认证方式里,基本的OAuth认证是必须要调整到跳转到第三方页面上进行授权的,例如下面的例子:1、从http://open.weibo.com/wiki/index.php/SDK#Android下载SDK包。2、在AndroidExample/src/weibo4android/Weibo...
从数据的发送到接收数据的解析再到oauth授权自己慢慢的写完了整个程序,虽然自己写的代码不怎么样,但是功能上已经基本接近官方七月份发布的Android版新浪微博。 做完项目再看自己写的代码,发现了很多不足,比如说...
新浪微博官方推荐的Java客户端 weibo4j 一直没有发布到maven仓库,而我们是重度maven用户,因而重新发明了这个新的轮子。 通过maven引用weiboclient4j 在项目pom.xml里面加入依赖: com.github.hoverruan ...
JustAuth集成了诸如:Github,Gitee,支付宝,新浪微博,微信,Google,Facebook,Twitter,StackOverflow等国内外数十家第三方平台。更多请参考 有什么特点? 全:已集成十多个第三方平台(内部常用的基本都已包含...