当前位置 主页 > 服务器问题 > Linux/apache问题 >
前期准备工作
1.云服务器
2.备案的域名
3.本地调试需要修改hosts文件,将域名映射到127.0.0.1
如何修改hosts文件:https://www.jb51.net/diannaojichu/319774.html
申请QQ互联,并成为开发者
申请QQ互联创建应用时需要备案域名,所以建议提前准备备案域名。
QQ互联:https://connect.qq.com/index.html
登录后,点击头像,进入认证页面,填写信息,等待审核。
审核通过后创建应用
应用创建通过审核后,就可以使用APP ID 和 APP Key
前期工作就这些了,后面可以开始写代码了。
项目结构:
properties或者yml配置文件(这里就是简单的配置了一下,可以自行添加数据库等配置)
server.port=80 server.servlet.context-path=/ #qq互联 qq.oauth.http:QQ互联中申请填写的网站地址
在pom中添加依赖
<!--httpclient--> <dependency> <groupId>org.apache.httpcomponents</groupId> <artifactId>httpclient</artifactId> <version>4.5.6</version> </dependency> <!--阿里 JSON--> <dependency> <groupId>com.alibaba</groupId> <artifactId>fastjson</artifactId> <version>1.2.47</version> </dependency>
发送QQ登录请求
定义全局变量获取配置文件中的网站地址
@Value("${qq.oauth.http}") private String http;
定义登录回调地址(可以用网站地址拼接或者直接写)
//QQ互联中的回调地址 String backUrl = http + "/index";
登录请求方法代码
@GetMapping("/qq/login") public String qq(HttpSession session) throws UnsupportedEncodingException { //QQ互联中的回调地址 String backUrl = http + "/index"; //用于第三方应用防止CSRF攻击 String uuid = UUID.randomUUID().toString().replaceAll("-",""); session.setAttribute("state",uuid); //Step1:获取Authorization Code String url = "https://graph.qq.com/oauth2.0/authorize?response_type=code"+ "&client_&redirect_uri=" + URLEncoder.encode(backUrl, "utf-8") + "&state=" + uuid; return "redirect:" + url; }
回调返回参数信息说明: