本站发布的所有文件/源码/文档/软件等均提供免费下载。
但本站带宽较低、流量有限,为防止恶意下载、盗刷流量,所以只能登陆网站后才能下载!
若给您带来不便请见谅~
为了方便,您可以通过qq授权登陆,也可以通过钉钉授权登陆。也可以通过邮箱注册后登陆。
sprignboot整合qq第三方登陆
部分代码
/**
* QQ回调
* @param request
* @return
*/
@GetMapping("/qq/callback")
public String qqcallback(HttpServletRequest request){
try {
HttpSession session = request.getSession();
String code = request.getParameter("code");
String state = request.getParameter("state");
String uuid = (String) session.getAttribute("state");
if(uuid != null){
if(!uuid.equals(state)){
return "error";
}
}
//Step2:通过Authorization Code获取Access Token
String backUrl = http + "/qq/callback";
String url = "https://graph.qq.com/oauth2.0/token?grant_type=authorization_code"+
"&client_id=" + QQHttpClient.APPID +
"&client_secret=" + QQHttpClient.APPKEY +
"&code=" + code +
"&redirect_uri=" + backUrl;
String access_token = QQHttpClient.getAccessToken(url);
//Step3: 获取回调后的 openid 值
url = "https://graph.qq.com/oauth2.0/me?access_token=" + access_token;
String openid = QQHttpClient.getOpenID(url);
//Step4:获取QQ用户信息
url = "https://graph.qq.com/user/get_user_info?access_token=" + access_token +
"&oauth_consumer_key="+ QQHttpClient.APPID +
"&openid=" + openid;
JSONObject jsonObject = QQHttpClient.getUserInfo(url);
//也可以放到Redis和mysql中
session.setAttribute("openid",openid); //openid,用来唯一标识qq用户
session.setAttribute("nickname",(String)jsonObject.get("nickname")); //QQ名
session.setAttribute("figureurl_qq_2",(String)jsonObject.get("figureurl_qq_2")); //大小为100*100像素的QQ头像URL
System.out.println(jsonObject.toJSONString());
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
System.out.println("--------------error");
}
return "redirect:/home";
}
猜你喜欢
算法基础
2109
在插件项目中创建一个文件夹,存放第三方依赖的jar包,将需要引用的jar包拷贝到此目录右键选择AddasLibrary选项添加到项目构建环境中,此时就可以用jar包的类了。注意:如果你导入了第三方
框架
2346
在springboot整合视图层,官方推荐使用thymeleaf。thymeleaf只是渲染html的一种方式,是一种模板。第一步创建一个maven项目第二步:修改Jdk版本,添加thymeleaf
前端(h5)
4905
layui管理端session过期正确的登陆姿势登陆页面跑到了iframe里边解决在登陆页面加入如下jsif(window!=top){top.location.href=location.href;};
框架
6678
1.登陆拦截器packagecom.dzqc.yx.interceptor;importorg.springframework.web.servlet.HandlerInterceptor
blog
springboot整合mybatis
框架
2563
springboot整合mybatis1.创建maven项目2.sql文件SETNAMESutf8mb4;SETFOREIGN_KEY_CHECKS=0
official
662
[TOC]一、pom文件?xmlversion="1.0"encoding="UTF-8"?projectxmlns="http://maven.apache.org/POM/4.0.0"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://maven.apache.org/POM/4.0.0
框架
2671
1.配置springboot支持websocketpackagecom.example.demo.websocket;importorg.springframework.context.annotation.Bean;importorg.springframework.context.annotation.Configuration;importorg.springframework.web.so
spring/springmvc
1538
springmvc+mybatis整合shiro权限1.需要的jar包propertiesshiro.version1.3.2/shiro.version/propertiesdependency