java web网站集成新浪微博登录

       今天要给网站添加第三方登录的功能,研究了下新浪微博登录的接口,本来想使用它提供的那种js代码库的方式,结果始终搞不定,由于不精通js只能够放弃。下载了个java的SDK包:weibo4j-oauth2-beta2.1.1,研究了下,虽然出了一些问题,但还是很快集成到网站里面了。

      首先,把一些必要的包和java类负责到自己的工程文件:


修改config文件里面的client_ID,client_SERCRET,redirect_URI。

自己在登录页面写一个微博登录按钮,超链接到名字为OAuth4Code的servlet。

import weibo4j.Oauth;
import weibo4j.model.WeiboException;
import weibo4j.util.BareBonesBrowserLaunch;


public class OAuth4Code extends HttpServlet {

public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException{


Oauth oauth = new Oauth();
try{
BareBonesBrowserLaunch.openURL(oauth.authorize("code",""));
}catch(WeiboException e){
System.out.println(e);
}
        
}


登录成功之后会跳转到config文件里面的redirect_URI。

我重定向的也是一个servlet,核心代码如下:

String code = request.getParameter("code");
try{
   Oauth oauth = new Oauth();
//    AccessToken token = oauth.getAccessTokenByCode(code);
   String token = oauth.getAccessTokenByCode(code).toString();
   System.out.println(token); 
//    String accessToken = token.getAccessToken();
//    String uid = token.getUid();
//    System.out.println(accessToken); 
//    System.out.println(uid); 

   String str[] = token.split(","); //截取字符串,获得sccessToken和uid
   String accessToken= str[0].split("=")[1];
   System.out.println(accessToken);
   
   String str1[] = str[3].split("]");
   String uid = str1[0].split("=")[1];
   System.out.println(uid);
   
   session.setAttribute("accessToken", accessToken);
   session.setAttribute("uid", uid);
   
   Users um = new Users();
um.client.setToken(accessToken);
User user = um.showUserById(uid);
String screenName = user.getScreenName(); //获得到用户昵称

session.setAttribute("name", screenName);
}catch(WeiboException e){
System.out.println(e);
}


本来想通过AccessToken 类来获取uid和token,结果会出现code错误之类的现象,只能辛苦的自己分割了。成功获取到uid和token之后就可以根据实例代码自己改了,我是获取了用户昵称。





评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值