Java web 集成使用QQ互联

导读:本篇文章讲解 Java web 集成使用QQ互联,希望对大家有帮助,欢迎收藏,转发!站点地址:www.bmabk.com

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次,说多了都是泪。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/78259.html

(0)
小半的头像小半

相关推荐

极客之音——专业性很强的中文编程技术网站,欢迎收藏到浏览器,订阅我们!