java 第三方登录_JAVA实现QQ第三方登录

本文介绍了如何使用JAVA实现QQ第三方登录。首先在QQ互联官网注册并创建应用,获取app_ID和app_KEY,然后引入Sdk4J.jar或通过maven添加依赖。将qqconnectconfig.properties配置文件放入项目资源目录,设置参数。接着,实现点击QQ登录后的授权跳转及回调地址处理,获取accessToken和openID。最后,展示如何利用accessToken和openID获取用户在Qzone的昵称、性别等信息。
摘要由CSDN通过智能技术生成

首先在QQ互联: https://connect.qq.com/manage.html 申请账号,并且进行资料审核,同时创建应用(设置回调地址)

869a0ecc8382ec2241fdfa8da0e468aa.png

申请应用完后,会有app_ID、app_KEY等参数

引入jar包 Sdk4J.jar

或者maven

net.gplatform

Sdk4J

2.0

把qqconnectconfig.properties 放在项目资源目录下

配置三个参数

b63c48ad355ad02759bbfe900670f6c0.png

点击QQ跳转第三方请求后台代码(官方demo代码)

/**

* 第三方登录 授权

*

* @return

*/

@RequestMapping(value = "/to_qq")

public void toLogin(HttpServletRequest request, HttpServletResponse response) {

response.setContentType("text/html;charset=utf-8");

try {

response.sendRedirect(new Oauth().getAuthorizeURL(request));

} catch (Exception e) {

e.printStackTrace();

}

}

回调地址代码(官方demo代码)

@RequestMapping(value = "/to_third_login/callback")

public void loginBack(HttpServletRequest request, HttpServletResponse response) {

response.setContentType("text/html; charset=utf-8");

try {

PrintWriter out = response.getWriter();

AccessToken accessTokenObj = (new Oauth()).getAccessTokenByRequest(request);

String accessToken = null,

openID = null;

long tokenExpireIn = 0L;

if (accessTokenObj.getAccessToken().equals("")) {

// 我们的网站被CSRF攻击了或者用户取消了授权

// 做一些数据统计工作

System.out.print("没有获取到响应参数");

} else {

accessToken = accessTokenObj.getAccessToken();

tokenExpireIn = accessTokenObj.getExpireIn();

request.getSession().setAttribute("demo_access_token", accessToken);

request.getSession().setAttribute("demo_token_expirein", String.valueOf(tokenExpireIn));

// 利用获取到的accessToken 去获取当前用的openid -------- start

OpenID openIDObj = new OpenID(accessToken);

openID = openIDObj.getUserOpenID();

out.println("欢迎你,代号为 " + openID + " 的用户!");

request.getSession().setAttribute("demo_openid", openID);

out.println("去看看发表说说的demo吧");

// 利用获取到的accessToken 去获取当前用户的openid --------- end

out.println("

start -----------------------------------利用获取到的accessToken,openid 去获取用户在Qzone的昵称等信息 ---------------------------- start

");

UserInfo qzoneUserInfo = new UserInfo(accessToken, openID);

UserInfoBean userInfoBean = qzoneUserInfo.getUserInfo();

out.println("
");

if (userInfoBean.getRet() == 0) {

out.println(userInfoBean.getNickname() + "
");

out.println(userInfoBean.getGender() + "
");

out.println("
");

out.println("
");

out.println("
");

} else {

out.println("很抱歉,我们没能正确获取到您的信息,原因是: " + userInfoBean.getMsg());

}

out.println("

end -----------------------------------利用获取到的accessToken,openid 去获取用户在Qzone的昵称等信息 ---------------------------- end

");

}

} catch (Exception e) {

}

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值