oauth授权

1.OAuth
OAuth是一种国际通用的授权方式,它的特点是不需要用户在第三方应用输入用户名及密码。OAuth的技术说明可参看官方网站 http://oauth.net (英文)。

微博系统中,OAuth的Access token不会过期,只有用户手工撤销授权或收回您的app访问权限access token才会失效。

目前OAuth只支持授权读写访问,授权的应用可以获取用户数据及发表微博。目前暂时不支持只读权限授权。


2.认证流程及访问资源流程
腾讯微博API通过以下四个步骤来完成认证授权并访问或修改受限资源的流程

1.获取未授权的Request Token(temporary credentials)
2.请求用户授权Request Token
3.使用授权后的Request Token换取Access Token(token credentials)
4.使用 Access Token 访问或修改受保护资源


3.桌面应用的OAuth使用方式
OAuth协议规范由于需要输入密码之后跳转到callback URL, 因此并不十分适合桌面软件(非Web软件)。我们采用输入PIN的方式来激活纯桌面应用。具体流程为:

第三方应用软件向API调用获得request token
用户打开网页跳转到新浪微博网站输入用户名及密码。
验证通过之后,用户会看到一个PIN码。
新浪验证通过网页界面提示用户需要到应用软件输入PIN码。
第三方应用软件提示用户输入PIN码。
第三方应用软件将PIN作为oauth/access_token接口的oauth_verifier parameter参数传入,获取access_token.
API接口返回后续请求所需access_token

 


4.
 RequestToken resToken=weboauth.request("http://localhost/s/callback.jsp");
 
  response.sendRedirect(resToken.getAuthorizationURL());
// http://localhost/s/callback.jsp?oauth_token=68fbb7cadac41b0a152afe2e82a5a225&oauth_verifier=712361


 AccessToken accessToken=weboauth.requstAccessToken(resToken,verifier);
   
     //第二个参数每次只能用一次,发表微博内容不能重复,如果重复发会返回400错误
     //这个accessToken不用每次访问都重新取,可以存到session里面用
     weboauth.update(accessToken,"web方式发表微博4");
     out.println("发表成功");  

posted @ 2011-02-08 13:51  attilaxAti  阅读(23)  评论(0编辑  收藏  举报