使用Java怎么实现一个QQ第三方登录功能

  介绍

这篇文章将为大家详细讲解有关使用Java怎么实现一个QQ第三方登录功能,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。

<强>申请QQ互联,并成为开发者

申请QQ互联创建应用时需要备案域名,所以建议提前准备备案域名。

QQ互联:https://connect.qq.com/index.html

登录后,点击头,像进入认证页面,填写信息,等待审核。

使用Java怎么实现一个QQ第三方登录功能

审核通过后创建应用

使用Java怎么实现一个QQ第三方登录功能

应用创建通过审核后,就可以使用APP ID和应用关键

使用Java怎么实现一个QQ第三方登录功能

前期工作就这些了,后面可以开始写代码了。

项目结构:

使用Java怎么实现一个QQ第三方登录功能

属性或者yml配置文件(这里就是简单的配置了一下,可以自行添加数据库等配置)

server.port=80   server.servlet.context-path=/,   # qq互联   qq.oauth。http: QQ互联中申请填写的网站地址

使用Java怎么实现一个QQ第三方登录功能

在pom中添加依赖

& lt; !——httpclient祝辞   & lt; dependency>   & lt;才能groupId> org.apache.httpcomponents</groupId>   & lt;才能artifactId> httpclient</artifactId>   & lt;才能version> 4.5.6</version>   & lt;/dependency>   & lt; !——阿里,JSON——比;   & lt; dependency>   & lt;才能groupId> com.alibaba</groupId>   & lt;才能artifactId> fastjson</artifactId>   & lt;才能version> 1.2.47</version>   & lt;/dependency>

<强>发送QQ登录请求

定义全局变量获取配置文件中的网站地址

@ value (“$ {qq.oauth.http}“)   private  String  http;

定义登录回调地址(可以用网站地址拼接或者直接写)

//QQ互联中的回调地址   String  backUrl =, http  +,“/index"

使用Java怎么实现一个QQ第三方登录功能

登录请求方法代码

@GetMapping (“/QQ/login")   public  String  qq (HttpSession 会话),throws  UnsupportedEncodingException  {//QQ才能互联中的回调地址   String 才能;backUrl =, http  +,“/index";   ,//用才能于第三方应用防止CSRF攻击   String 才能;uuid =, UUID.randomUUID () .toString () .replaceAll(“产生绯闻,““);   session.setAttribute才能(“state" uuid);   ,//步骤1:才能获取Authorization 代码   String 才能;url =癶ttps://graph.qq.com/oauth3.0/authorize?response_type=code" +   ,,,,,,,client_id=?, +, QQHttpClient.APPID  +   ,,,,,,,redirect_uri=? +, URLEncoder.encode (backUrl,“utf-8"), +   ,,,,,,,=白刺?+,uuid;   ,   return 才能“重定向:“,+,url;   }

<>强回调返回参数信息说明:

<强>参数名称 <强>描述 <强> ret 强返回码。详见公共返回码说明# OpenAPI V3.0返回码。<强>味精强如果错误,返回错误信息。<强> is_lost 强判断是否有数据丢失。如果应用不使用缓存,不需要关心此参数。

0或者不返回:没有数据丢失,可以缓存。
, 1:有部分数据丢失或错误,不要缓存。

<强>昵称昵称。<强>性别强性别。<强> 国家国家(当pf=qq空间,朋友或qplus时返回)。<强> 强省省(当pf=qq空间,朋友或qplus时返回)。<强> 市城市(当pf=qq空间,朋友或qplus时返回)。<强> figureurl 头像URL。详见:前端页面规范# 6。关于用户头像的获取和尺寸说明。<强> openid 用户QQ号码转化得到的ID(当pf=qplus时返回)。<强> qq_level 用户QQ等级(当pf=qplus时返回)。<强> qq_vip_level 用户QQ会员等级(当pf=qplus时返回)。<强> qplus_level 用户Q +等级(当pf=qplus时返回)。<强> is_yellow_vip 是否为黄钻用户(0:不是,1:是)。

(当pf=QQ空间,朋友或qplus时返回)

<强> is_yellow_year_vip

使用Java怎么实现一个QQ第三方登录功能