使用第三方qq登录需要在QQ互联官网https://connect.qq.com/中申请成功才可以使用。

1.登录成功后进入个人设置中心设置个人信息

2.选择公司或个人接入,这里我选择个人接入

 3.注册审核通过以后,点击应用管理,右侧会显示审核已通过,然后就可以申请网站应用的第三方登录了

4.填写网站信息

 5.然后就可以获得APP ID和 APP Key,有了这两个就可以使用qq登陆了

 6.然后下边是如何使用登录接口进行授权登录

这个java使用qq接口登录的源码链接:https://pan.baidu.com/s/1-KM80g5k4OWpO1v8KwtO_A 提取码:sdkh

6.1首先创建一个springboot应用learnstudy

目录结构

 

6.2导入依赖 

     <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-thymeleaf</artifactId></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId></dependency>!--qq互联--><!-- https://mvnrepository.com/artifact/net.gplatform/Sdk4J --><dependency><groupId>net.gplatform</groupId><artifactId>Sdk4J</artifactId><version>2.0</version></dependency><dependency><groupId>org.projectlombok</groupId><artifactId>lombok</artifactId></dependency>

 6.3创建登录控制类 LoginController

package com.study.learn.controller;import com.qq.connect.QQConnectException;
import com.qq.connect.api.OpenID;
import com.qq.connect.api.qzone.PageFans;
import com.qq.connect.api.qzone.UserInfo;
import com.qq.connect.javabeans.AccessToken;
import com.qq.connect.javabeans.qzone.PageFansBean;
import com.qq.connect.javabeans.qzone.UserInfoBean;
import com.qq.connect.oauth.Oauth;
import com.study.learn.pojo.User;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.util.HashMap;
import java.util.Map;@Controller
public class LoginController {@RequestMapping("/hello")@ResponseBodypublic String hello(){return "hello";}@RequestMapping("/")public String index(){return "index";}/*请求qq登录*/@RequestMapping("/LoginByQQ")public void LoginByQQ(HttpServletRequest request, HttpServletResponse response){try {response.sendRedirect(new Oauth().getAuthorizeURL(request));} catch (QQConnectException | IOException e) {e.printStackTrace();}}/*回调地址*/@RequestMapping("/login")public String AfterLoginRedirect(HttpServletRequest request, HttpServletResponse response, Model model){try {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 -------- startOpenID openIDObj =  new OpenID(accessToken);openID = openIDObj.getUserOpenID();//    out.println("欢迎你,代号为 " + openID + " 的用户!");request.getSession().setAttribute("demo_openid", openID);//    out.println("<a href=" + "/shuoshuoDemo.html" +  " target=\"_blank\">去看看发表说说的demo吧</a>");// 利用获取到的accessToken 去获取当前用户的openid --------- end//    out.println("<p> start -----------------------------------利用获取到的accessToken,openid 去获取用户在Qzone的昵称等信息 ---------------------------- start </p>");UserInfo qzoneUserInfo = new UserInfo(accessToken, openID);UserInfoBean userInfoBean = qzoneUserInfo.getUserInfo();//   out.println("<br/>");if (userInfoBean.getRet() == 0) {Map<String,Object> map= new HashMap<>();String name=userInfoBean.getNickname();String gender=userInfoBean.getGender();String imgurl=userInfoBean.getAvatar().getAvatarURL30();map.put("openId",openID);map.put("name",name);map.put("gender",gender);map.put("imgUrl",imgurl);User user=new User(openID,name,gender,imgurl);model.addAttribute("user",user);//                    out.println(userInfoBean.getNickname() + "<br/>");
//                    out.println(userInfoBean.getGender() + "<br/>");
//                    out.println("黄钻等级: " + userInfoBean.getLevel() + "<br/>");
//                    out.println("会员 : " + userInfoBean.isVip() + "<br/>");
//                    out.println("黄钻会员: " + userInfoBean.isYellowYearVip() + "<br/>");
//                    out.println("<image src=" + userInfoBean.getAvatar().getAvatarURL30() + "/><br/>");
//                    out.println("<image src=" + userInfoBean.getAvatar().getAvatarURL50() + "/><br/>");
//                    out.println("<image src=" + userInfoBean.getAvatar().getAvatarURL100() + "/><br/>");} else {//                  out.println("很抱歉,我们没能正确获取到您的信息,原因是: " + userInfoBean.getMsg());System.out.println("很抱歉,我们没能正确获取到您的信息,原因是: " + userInfoBean.getMsg());}}} catch (QQConnectException e) {}return "AfterLogin";}}

6.4创建实体类 User

package com.study.learn.pojo;import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;@Data
@AllArgsConstructor
@NoArgsConstructor
public class User {private String openId;private String name;private String gender;private String imgurl;}

6.5前端编写

创建登录主页index.html

(图片素材)

<!DOCTYPE html>
<html lang="en" xmlns:th="http://www.thymeleaf.org">
<head><meta charset="UTF-8"><title>test</title>
</head>
<body>
<a th:href="@{/LoginByQQ}"> <img th:src="@{/images/qq2.png}"></a>
</body>
</html>

效果

创建登录点击登录授权成功的页面AfterLogin.html

<!DOCTYPE html>
<html lang="en" xmlns:th="http://www.thymeleaf.org">
<head><meta charset="UTF-8"><title>Title</title>
</head>
<body><div th:text="${user.openId}"></div>
<div th:text="${user.gender}"></div>
<div th:text="${user.imgurl}"></div>
<div th:text="${user.name}"></div>
</body>
</html>

最后加入qqconnectconfig.properties

app_ID = 1012394
app_KEY = 0bf9ea3558af4d82056472476d9d
redirect_URI = http://wanhhh.grouggp/studffy/login
scope = get_user_info,add_topic,add_one_blog,add_album,upload_pic,list_album,add_share,check_page_fans,add_t,add_pic_t,del_t,get_repost_list,get_info,get_other_info,get_fanslist,get_idollist,add_idol,del_ido,get_tenpay_addr
baseURL = https://graph.qq.com/
getUserInfoURL = https://graph.qq.com/user/get_user_info
accessTokenURL = https://graph.qq.com/oauth2.0/token
authorizeURL = https://graph.qq.com/oauth2.0/authorize
getOpenIDURL = https://graph.qq.com/oauth2.0/me
addTopicURL = https://graph.qq.com/shuoshuo/add_topic
addBlogURL = https://graph.qq.com/blog/add_one_blog
addAlbumURL = https://graph.qq.com/photo/add_album
uploadPicURL = https://graph.qq.com/photo/upload_pic
listAlbumURL = https://graph.qq.com/photo/list_album
addShareURL = https://graph.qq.com/share/add_share
checkPageFansURL = https://graph.qq.com/user/check_page_fans
addTURL = https://graph.qq.com/t/add_t
addPicTURL = https://graph.qq.com/t/add_pic_t
delTURL = https://graph.qq.com/t/del_t
getWeiboUserInfoURL = https://graph.qq.com/user/get_info
getWeiboOtherUserInfoURL = https://graph.qq.com/user/get_other_info
getFansListURL = https://graph.qq.com/relation/get_fanslist
getIdolsListURL = https://graph.qq.com/relation/get_idollist
addIdolURL = https://graph.qq.com/relation/add_idol
delIdolURL = https://graph.qq.com/relation/del_idol
getTenpayAddrURL = https://graph.qq.com/cft_info/get_tenpay_addr
getRepostListURL = https://graph.qq.com/t/get_repost_list
version = 2.0.0.0

 最后就大功告成了!!!!!

要是网站应用还没通过审核会显示以下情况

通过审核后显示如下

springboot网站应用使用第三方qq登录相关推荐

  1. SpringBoot+Vue实现第三方QQ登录(一)

    1. QQ登录介绍(测试网站:地址) QQ互联开放平台为第三方网站提供了丰富的API(官网地址: QQ互联官网首页).第三方网站接入QQ互联开放平台后,即可通过调用平台提供的API实现用户使用QQ帐号 ...

  2. SpringBoot+Vue实现第三方QQ登录(二)

    1. 准备工作_OAuth2.0(官网地址:开发流程) 本步骤的作用: 接入QQ登录前,网站需首先进行申请,获得对应的appid与appkey,以保证后续流程中可正确对网站与用户进行验证与授权. 1. ...

  3. SpringBoot实现第三方QQ登录

    SpringBoot实现第三方qq登录Demo 1,首先进入qq互联中应用管理去审核信息得到appID和appKEY 审核填写信息后: 等通过找到id 和key参数. 2,贴代码解释: (1)pom文 ...

  4. SpringBoot+Vue实现第三方微博登录(一)

    1. 微博登录介绍(测试网站:地址) 微博登录包括身份认证.用户关系以及内容传播.允许用户使用微博帐号登录访问第三方网站,分享内容,同步信息.它有如下特点: 1. 直接用微博账号登录你的应用或网站. ...

  5. SpringBoot+Vue实现第三方微博登录(二)

    1. 准备工作(官方文档:地址) 本步骤的作用: 接入微博登录前,网站需首先进行申请,获得对应的appid与appkey,以保证后续流程中可正确对网站与用户进行验证与授权. 1.1 保存appid和a ...

  6. SpringBoot+Vue实现第三方百度登录(二)

    1. 准备工作 本步骤的作用: 接入百度登录前,网站需首先进行申请,获得对应的appid与appkey,以保证后续流程中可正确对网站与用户进行验证与授权. 1.1 保存appid和appkey app ...

  7. android登录操作代码,Android Studio实现第三方QQ登录操作代码

    来看看效果图吧 实现QQ登录了, 新建一个项目工程 ,然后把我们刚才下载的SDK解压将jar文件夹中的jar包拷贝到我们的项目libs中 导入一个下面架包就可以 项目结构如下 打开我们的清单文件And ...

  8. Android接入第三方QQ登录

    Android接入第三方QQ登录 前言 开始接入 1. 添加依赖 2.AndroidManifest.xml配置 3.初始化SDK 4.创建实例 5.实现回调 6. 调用QQ登录接口 7.获取用户信息 ...

  9. Android第三方QQ登录、获取个人信息、分享实现

    昨天调试了一下午终于成功 第三方QQ登录.获取个人信息,分享 QQ官方API文档写的太乱 并且很多地方没有更新 这里总结一下 方便记录和回看 实现结果图 首先进入腾讯开放平台 下载QQ的SDK 地址 ...

最新文章

  1. 设计模式在我工作中的巧妙实践
  2. 科普丨深度学习 vs 概率图模型 vs 逻辑学
  3. 《基于Windows 7特性的程序开发系列》视频分享
  4. linux基础-网络基础知识篇
  5. C++ Primer 5th笔记(chap 18 大型程序工具)命名空间特性
  6. ArgoCD + KubeVela:以开发者为中心的 GitOps
  7. 计算卷积神经网络中参数量
  8. sql查询百分之20到百分之40的数据_数据库基础学习——SQL语言知识总结(6)
  9. iOS开发-XMPP
  10. 史上最通俗的《深入理解计算机网络》目录
  11. 基于JAVA+SpringMVC+Mybatis+MYSQL的药店门店管理系统
  12. 【less-11】基于SQLI的POST字符型SQL注入
  13. Java中父子类引用的理解
  14. VS2017大型工厂ERP管理系统源码 工厂通用ERP源码
  15. B站晚会为什么被夸疯了?答案飘在84万条弹幕中……
  16. Hyperledger Fabric Service Discovery CLI(服务发现命令行工具)学习笔记
  17. 神经网络辨识的优势是,神经网络辨识的优势有
  18. springboot项目结构_从零搭建Spring Boot脚手架(1):开篇以及技术选型
  19. 一些PPT演讲前暖场的音乐
  20. Host文件是什么?host文件有什么作用?

热门文章

  1. 树莓派将DHT11温度湿度上传到阿里云物联网平台
  2. 游戏推广的艺术——广告战争的学问
  3. Echarts在一个容器中绘制多张横向条形统计图
  4. 电脑右下,怎样在电脑右下角显示姓名
  5. Scorm标准课件打包制作服务
  6. 一公顷等于多少亩「知识普及」
  7. 【事件驱动架构】专家组:事件驱动的大规模架构
  8. dev hdb2在linux中表示,linux查看磁盘空间
  9. [L1 - 10分合集]大笨钟
  10. 网页色彩搭配的几种常用颜色