Java web 集成使用QQ互联

前言

自己模仿京东写一个电商项目,中间有一个功能是使用QQ快捷登录,这样确实方便用户使用。

流程讲解

流程大致如下:

  1. 用户访问登陆页面,使用qq快捷登录,此时会跳转到qq登陆页面。
  2. 用户输入qq号和密码,点击登录。
  3. 如果账号密码正确就会跳转到自定义的回调接口。
  4. 在回调接口中进行用户查询,如果该用户存在,就直接登录成功,如果不存在,就让用户先注册。

准备工作

  1. 创建maven项目
  2. 拥有一个已经备案的网站

申请QQ互联

qq互联网官网
大致流程分为 接入和创建应用。

接入个人开发者

进入官网后,点击应用管理

此时,如果是第一次使用QQ互联,应该显示类似

点击头像,进行个人开发者接入,填写完成后等待审核。

审核成功后:

创建应用

在应用管理的页面,根据自己需要创建应用。因为我是web开发,所以就选择创建网站应用。

由于我之前有账号创建了,就不再新建,给你看结果。如果新建的应用一般要花上几天进行审核。

应用接入

  1. 引入依赖
  2. 创建配置文件
  3. 创建接口(登录接口/登录成功回调接口)

依赖引入

Maven 依赖引入

<!-- https://mvnrepository.com/artifact/net.gplatform/Sdk4J -->
<dependency><groupId>net.gplatform</groupId><artifactId>Sdk4J</artifactId><version>2.0</version>
</dependency>

我当时网上查资料时,是模仿别人使用 本地jar,如果有发现maven引入坐标后不行请品论区留言,我将本地引 jar补上。

创建配置文件

在resources目录下创建qqconnectconfig.properties文件
app_ID ,app_KEY ,redirect_URI 这三个在应用管理中获取。

# 狗东
app_ID = your AppId
app_KEY = your app_KEY
redirect_URI = your redirect_URI
scope = get_user_info
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

创建接口

创建登录接口

该接口的作用就是重定向qq快速登录界面,并携带上重要配置参数(符合Oauth2协议)。

@ApiOperation(value = "QQ互联登录", notes = "")
@GetMapping("/login")
public void login (HttpServletRequest request, HttpServletResponse response) throws QQConnectException, IOException {response.sendRedirect(new Oauth().getAuthorizeURL(request));
}

浏览器访问 该接口,会重定向qq互联页面:

登录成功回调接口

下面使用了伪代码,有一部分逻辑需要自己实现,比如根据openId查询用户信息,根据信息存不存在,跳转到注册页面或是主页面(用户免登录)。

/*** QQ登录成功后的回调接口,跳转页面* @param request* @param response* @throws QQConnectException* @throws IOException*/
@ApiOperation(value = "QQ登录回调", notes = "QQ登录成功后,QQ互联的回调地址")
@GetMapping("/fallback")
public void fallback(HttpServletRequest request, HttpServletResponse response) throws QQConnectException, IOException {AccessToken accessTokenObj = (new Oauth()).getAccessTokenByRequest(request);String accessToken = null, openID = null;long tokenExpireIn = 0L;if (StringUtils.isEmpty(accessTokenObj.getAccessToken())) {log.error("没有获取到响应参数");}else{accessToken = accessTokenObj.getAccessToken();tokenExpireIn = accessTokenObj.getExpireIn();OpenID openIDObj =  new OpenID(accessToken);openID = openIDObj.getUserOpenID();UserInfo qzoneUserInfo = new UserInfo(accessToken, openID);// qq的基本信息,昵称,性别,头像等UserInfoBean userInfoBean = qzoneUserInfo.getUserInfo();// 根据openId查询用户数据库// openId未使用,可以绑定if (true) {// 重定向首页,并自动登录} else {// 重定向首页,并自动登录}}
}

结语

使用第三方的东西,大多都需要审核,而且审核的时间也不固定,所以太多时间都是花在提交审核上,例如我之前使用阿里云短信审核,提交了n次,说多了都是泪。

Java web 集成使用QQ互联相关推荐

  1. web端,qq互联以及微信登录接入流程(内嵌页面)总结

    前言 实习过程中,我参与了web版相册管家的开发,负责登陆页面的前后端逻辑. 需要在登陆页接入QQ互联和微信扫码登陆,而且是用页面内嵌方式.回头来看其实两者都有文档指导,步骤清楚,并不复杂.但是第一次 ...

  2. Java web集成支付宝电脑支付接口(沙箱环境)

    前言 这篇博客主要介绍如何在Java web项目中集成支付宝的电脑支付接口(会稍微介绍一下服务器集成APP支付接口).目前支付宝接口更新很快,在博主查找资料的时候,很多都是即时到账接口,APP支付则是 ...

  3. java web 集成dom4j_[JavaWeb基础] 031.dom4j写入xml的方法

    上一篇我们讲述了dom4j读取xml的4种方法,甚是精彩,那么怎么样写入xml呢?我们直接看下源码实现. public static void main(String[] args) throws E ...

  4. java web集成ldap_关于Java LDAP登录集成

    最近项目需要集成LDAP的登录,所以简单研究了一下ldap的集成主要有以下几个步骤: 一.配置spring boot的LDAP配置文件 1.配置pom文件: org.springframework.b ...

  5. java web集成kettle_Javaweb整合mongo和kettle6.0的环境配置

    为了编译能通过,maven需要加入仓库地址以及一些必须要的包的依赖情况: pentaho中央仓库: 在properties里面配置版本号: 6.0.0.0-353 pentaho1 Pentaho R ...

  6. java qq登陆 server_java实现QQ互联登录

    yml配置 server: port: 80 qq: oauth: http: //QQ互联中填写的网站地址 导入pom依赖 org.apache.httpcomponents httpclient ...

  7. JAVA Spring Security对接QQ快速登录(web应用)

    阅读此文需要对Security有大概的了解,了解其运行流程 security对接QQ互联jssdk快速登录 前端使用的是vue.js 1.首先在QQ互联申请一个应用,得到appid和设置好回调地址 2 ...

  8. java实现QQ互联登录

    准备工作 1.云服务器 2.备案的域名 3.本地调试需要修改hosts文件,将域名映射到127.0.0.1 一.申请QQ互联,并成为开发者 QQ互联:https://connect.qq.com/in ...

  9. java web 实现qq发送邮箱验证码

    java web 实现qq邮箱验证码发送 第一步: 打开qq邮箱 设置---->选择账户----> 打开 打开之后我们将会获得一个授权码 现在我们拿到授权码之后 我们就可以开始写代码了 1 ...

  10. java web QQ(二)

    一,项目目录如下图所示,当然你也可以不采用这种,看个人习惯 二,获取登录二维码并保存 打开你的火狐游览器,先百度web qq找到腾讯的官方网址打开,先不要急着扫描登陆,按下F12后,再扫描登陆 你会在 ...

最新文章

  1. JSON在JS和JAVA的处理
  2. springboot 1.5.2 集成kafka 简单例子
  3. java 刷新界面_利用java如何实现在删除信息后刷新页面功能
  4. 雷林鹏分享:C# 多态性
  5. 主机防火墙与访问控制
  6. 20162327WJH第二次实验——树
  7. c# formApp的web browser的兼容性设置
  8. excel打不开_卸载WPS以后为什么无法打开一个新建的Excel工作簿了
  9. Nginx(1)基础部分
  10. 揭秘全美第一黑客组织Anonymous(匿名者)的装备库
  11. python导入openpyxl_python系列之(6)Python使用Openpyxl操作Excel
  12. 计算机应用多媒体设计是学什么的,数字媒体艺术设计专业是学什么?
  13. 【58沈剑架构系列】一分钟了解负载均衡的一切
  14. c语言基础知识(知识点较为完整)
  15. 仿迅雷播放器教程 -- 基于VLC的MFC播放器 (6)
  16. 基于51单片机信号发生器仿真设计
  17. 王树森:学 DRL 走过的弯路太多,想让大家避开
  18. Ubuntu系统制作U盘启动盘
  19. 平行线判断函数+求平行线之间的距离
  20. 从苏宁电器到卡巴斯基(第二部)第14篇:我在卡巴的日子 XIV

热门文章

  1. 芯片设计验证中遇到的VCD、VPD以及EVCD到底是什么?
  2. c语言指针实现字符串拼接
  3. java 批量修改图片名称_java 批量修改文件名称
  4. GIS基础知识 - 坐标系、投影、EPSG:4326、EPSG:3857
  5. 十一式:开发者思维模式-简单而纯粹
  6. bit与Byte,KB与KiB,MB与MiB,GB与GiB等
  7. android相机代码权限,Android – 相机权限被拒绝而没有提示
  8. android textview得到文字的长度,Android TextView 文字长度控制
  9. win10提升性能的服务器,win10专业版设置优化提高系统性能图解
  10. php高德根据ip获取经纬度,开放平台:高德地图获取经纬度