OAuth授权的Java实现详解
OAuth是什么?
先来简单介绍一下OAuth授权协议:OAUTH协议为用户资源的授权提供了一个安全的、开放而又简易的标准。同时,任何第三方都可以使用OAuth认证服务,任何服务提供商都可以实现自身的OAuth认证服务,因而OAUTH是开放的。业界提供了OAuth的多种实现如PHP,JavaScript,Java,Ruby等各种语言开发包,大大节约了程序员的时间,因而OAuth是简易的。目前互联网很多服务如Open API,很多大头公司如Google,Yahoo,Microsoft等都提供了OAuth认证服务,这些都足以说明OAUTH标准逐渐成为开放资源授权的标准。

OAuth的授权流程
你所开发的应用需要流程如下:

向应用服务商(新浪、搜狐等微博)请求request_token。
得到request_token后重定向用户到服务商的授权页面。
如果用户选择授权你得应用,用request_token向服务商请求换取access_token。
得到access_token等信息访问受限资源。
而服务商相应的响应如下:

创建request_token返回给应用。
询问用户是否授权此应用。如果用户授权重定向用户至应用页面。
创建access_token并返回给应用。
响应受限资源请求并返回相关信息。
通俗点的说法就是“你拿着你得身份证明(request_token)向服务商申请进入用户家的门钥匙(access_token),服务商询问用户同不同意,如果用户同意服务商就给你进入用户家门的钥匙(access_token),拿到钥匙后你就可以进到用户家里”。

OAuth授权的Java实现
作为一个开放协议目前有很多现成的Oauth库可供开发者使用,可以点击这里下载。不过有精力有时间的话还是自己去实现一下OAuth授权的流程,可以很好的体会OAuth认证协议的原理。以

下面就是我使用Java实现Oauth的具体步骤,代码很简单,如果有画蛇添足的地方还望高手一笑而过。

一、获取Request_token
首先得准备一下参数及其来源:

oauth_consumer_key —— 注册应用后由应用服务商提供
consumer_secret —— 注册应用后由应用服务商提供
oauth_callback —— 用户授权后的返回地址
oauth_nonce —— 随机字符串,须保证每次都不同
oauth_timestamp —— 时间戳
oauth_signature_method —— 签名base string 的方法,目前支持 HMAC-SHA1
oauth_version —— Oauth协议版本
还需要下面三个请求地址(这些地址任何一个提供OAuth的服务商都会提供给你,看下API文档就会找到):

requst_token_url —— 上面第1步中的请求地址
authorize_url —— 上面第2步的请求地址
access_token_url —— 上面第3步的请求地址
至于如何注册应用,新浪微博点此,网易微博点此,腾讯微博点此,搜狐微博需要你发邮件索取,具体看这里。注册成功后就会获得oauth_consumer_key 和 consumer_secret 两个参数。

oauth_callback 起的作用是当用户授权成功后服务商会把用户重定向到这个网址。


来源
lunzi   2011-07-18 19:12:28 评论:0   阅读:1970   引用:0

发表评论>>

署名发表(评论可管理,不必输入下面的姓名)

姓名:

主题:

内容: 最少15个,最长1000个字符

验证码: (如不清楚,请刷新)

Copyright@2004-2010 powered by YuLog