java 第三方qq登录

项目地址:https://download.csdn.net/download/qq_36346817/10505309

  1. qq互联的官网申请应用(https://connect.qq.com/index.html),这个就不详细的说了

  2. 域名你也准备好

项目机构图就3个东西

现在开始 代码部分了

QQ的基本配置文件,前面的三行是你的要配置的

app_ID = 101479721
app_KEY = ca64d5d91f12c640d22a6a5f5c710278
redirect_URI = http://www.wangjiayu.online:8080/SSM/oauth/qqAfterlogin.do
pom文件

	
		net.gplatform
		Sdk4J
		2.0
	

jsp文件就一个按钮

<%@ page language=“java” import=“java.util.*” pageEncoding=“UTF-8”%>
<%
String path = request.getContextPath();
String basePath = request.getScheme() + “?/” + request.getServerName() + “:”
+ request.getServerPort() + path + “/”;
%>

My JSP 'index.jsp' starting page QQ登入 controller类,下面

qqAfterlogin是回调地址,这个是要告诉腾讯的地址
package com.wangjiayu.ssm.controller;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;

import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;

import com.qq.connect.QQConnectException;
import com.qq.connect.api.OpenID;
import com.qq.connect.api.qzone.UserInfo;
import com.qq.connect.javabeans.AccessToken;
import com.qq.connect.javabeans.qzone.UserInfoBean;
import com.qq.connect.oauth.Oauth;

/**

  • QQ登入
  • @author 王家···羽

*/

@Controller
@RequestMapping(value = “/oauth”)
public class QQloginController {

/**
 * 页面重定向到qq第三方的登录页面。
 */
@RequestMapping(value = "/qqLogin")
public void qqLogin(HttpServletRequest request, HttpServletResponse response) throws Exception {
	response.setContentType("text/html;charset=utf-8");
	try {
		response.sendRedirect(new Oauth().getAuthorizeURL(request));
	} catch (QQConnectException e) {
		e.printStackTrace();
	}
}

/**
 * 获取QQ账号信息 redirect_URI是值使用第三方登录页面登录成功后的跳转地址
 * 
 * @return
 */
@RequestMapping(value = "/qqAfterlogin")
public void qqAfterlogin(HttpServletRequest request, HttpSession session) throws Exception {

	AccessToken accessTokenObj = (new Oauth()).getAccessTokenByRequest(request);
	String accessToken = null, openID = null;

	// 用户授权的时候取消了,跳转到首页吧
	if (accessTokenObj.getAccessToken().equals("")) {
		System.out.print("没有获取到响应参数");
	}
	accessToken = accessTokenObj.getAccessToken();// 相当于密码(没有什么叼用)

	// 用户QQ的个人信息
	OpenID openIDObj = new OpenID(accessToken);
	openID = openIDObj.getUserOpenID(); // onpenId是QQ用户的唯一标示
	UserInfo qzoneUserInfo = new UserInfo(accessToken, openID);
	UserInfoBean userInfoBean = qzoneUserInfo.getUserInfo();
	System.out.println(userInfoBean);

}

}
基本就是这样了!没有几个东西,就是申请QQ应用要点时间,域名可以去阿里云买,10块一年的一大包!

作者:迅捷羽翼
来源:CSDN
原文:https://blog.csdn.net/qq_36346817/article/details/80842009
版权声明:本文为博主原创文章,转载请附上博文链接!

你可能感兴趣的:(JAVA)