现在微博怎么qq登录,微博怎么不能用qq登录了

首页 > 实用技巧 > 作者:YD1662024-01-08 21:52:32

前期准备

1、首先开发者需要登录QQ互联,进行开发者认证,这里需要

2、进入应用管理页面,依次点击:应用管理 -> 网站应用 -> 创建应用,应用信息提交后,等待审核通过即可,这一步我们需要注意的是:

QQ登录实现

这里为了简单,我们使用JustAuth来实现QQ登录,该项目集成了Github、Gitee、QQ、微博等等第三方登录,号称史上最全的整合第三方登录的开源库。

另外为了方便演示,就不使用SpringBoot了,只用Vert.x搭建简单的服务。

1、导入依赖,其中hutool是一个工具类库

<dependency> <groupId>cn.hutool</groupId> <artifactId>hutool-all</artifactId> <version>5.3.3</version> </dependency> <dependency> <groupId>me.zhyd.oauth</groupId> <artifactId>JustAuth</artifactId> <version>1.15.2-alpha</version> </dependency> <dependency> <groupId>io.vertx</groupId> <artifactId>vertx-core</artifactId> <version>3.2.0</version> </dependency> <dependency> <groupId>io.vertx</groupId> <artifactId>vertx-web</artifactId> <version>3.2.0</version> </dependency>

2、实现服务端代码

packagecom.qianyu; importcn.hutool.json.*; importio.vertx.core.*; importio.vertx.core.http.*; importio.vertx.ext.web.*; importme.zhyd.oauth.config.*; importme.zhyd.oauth.model.*; importme.zhyd.oauth.request.*; importme.zhyd.oauth.utils.*; publicclassServer{ privatestaticAuthQqRequestauthQqRequest; privatestaticAuthRequestcreateAuthRequest(){ if(authQqRequest==null){ authQqRequest=newAuthQqRequest(AuthConfig.builder() .clientId("你的clientid") .clientSecret("你的clientsecret") .redirectUri("你的回调地址") .build()); } returnauthQqRequest; } publicstaticvoidmain(String[]args){ Vertxvertx=Vertx.vertx(); Routerrouter=Router.router(vertx); router.get("/comm/user/callback").blockingHandler(context->{ HttpServerRequestreq=context.request(); AuthCallbackcallback=newAuthCallback(); callback.setCode(req.getParam("code");); callback.setstate(req.getParam("state")); AuthRequestauthRequest=createAuthRequest(); AuthResponseauRes=authRequest.login(callback); HttpServerResponseres=context.response(); res.putHeader("Content-Type","text/json;charset=utf-8"); res.end(JSONUtil.toJsonStr(auRes)); }); router.get("/login").blockingHandler(context->{ Stringurl=createAuthRequest().authorize(AuthStateUtils.createState()); HttpServerResponseres=context.response(); res.putHeader("location",url); res.setStatusCode(302); res.end(); }); HttpServerhttpServer=vertx.createHttpServer(); httpServer.requestHandler(router::accept); httpServer.listen(8886); } }

代码很好理解,主要可以分为以下几个步骤

  1. 构建一个QQ登录的工具类,监听两个路由
  2. 当我们访问/login的时候,生成登录地址,并且重定向到登录地址
  3. 当我们登录之后,系统跳往回调地址,即/comm/user/callback,在这里我们获取参数code和state封装成AuthCallback对象,执行登录方法
  4. 登录成功后会返回用户信息,格式如下:

现在微博怎么qq登录,微博怎么不能用qq登录了(1)

登录成功后返回的用户信息

需要注意的是:创建AuthQqRequest对象的时候,必须是单例,也就是说,必须保证生成登录地址的对象的执行登录方法的对象是同一个。

栏目热文

文档排行

本站推荐

Copyright © 2018 - 2021 www.yd166.com., All Rights Reserved.