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

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

9ffe264ceea59fca0e161c77d972f25d.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) {

}

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值