前期准备工作
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=80server.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;}
回调返回参数信息说明:
参数名称 | 描述 |
---|---|
ret | 返回码。详见公共返回码说明#OpenAPI V3.0 返回码。 |
msg | 如果错误,返回错误信息。 |
is_lost | 判断是否有数据丢失。如果应用不使用cache,不需要关心此参数。 0或者不返回:没有数据丢失,可以缓存。 |
学习交流
热门图片
猜你喜欢的新闻
新闻热点 2020-07-20 18:53:25
2020-07-20 18:49:06
2020-07-20 18:46:48
2020-07-20 18:43:28
2020-07-20 18:36:00
2020-07-17 23:29:41
疑难解答 图片精选 |