在線登錄qq(在線登錄qq帳號(hào)和好友聊天)
前沿拓展:
在線登錄qq
因?yàn)槟阄⑿盘?hào)關(guān)聯(lián)了你的QQ
前期準(zhǔn)備
1、首先開發(fā)者需要登錄QQ互聯(lián),進(jìn)行開發(fā)者認(rèn)證,這里需要
個(gè)人基本信息一張手持身份證的張片
2、進(jìn)入應(yīng)用管理頁(yè)面,依次點(diǎn)擊:應(yīng)用管理 -> 網(wǎng)站應(yīng)用 -> 創(chuàng)建應(yīng)用,應(yīng)用信息提交后,等待審核通過即可,這一步我們需要注意的是:
網(wǎng)站域名需要提前備案網(wǎng)站信息要和備案信息一致QQ登錄實(shí)現(xiàn)
這里為了簡(jiǎn)單,我們使用JustAuth來實(shí)現(xiàn)QQ登錄,該項(xiàng)目集成了Github、Gitee、QQ、微博等等第三方登錄,號(hào)稱史上最全的整合第三方登錄的開源庫(kù)。
另外為了方便演示,就不使用SpringBoot了,只用Vert.x搭建簡(jiǎn)單的服務(wù)。
1、導(dǎo)入依賴,其中hutool是一個(gè)工具類庫(kù)
<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、實(shí)現(xiàn)服務(wù)端代碼
package com.qianyu;
import cn.hutool.json.*;
import io.vertx.core.*;
import io.vertx.core.http.*;
import io.vertx.ext.web.*;
import me.zhyd.oauth.config.*;
import me.zhyd.oauth.model.*;
import me.zhyd.oauth.request.*;
import me.zhyd.oauth.utils.*;
public class Server {
private static AuthQqRequest authQqRequest;
private static AuthRequest createAuthRequest() {
if (authQqRequest == null) {
authQqRequest = new AuthQqRequest(AuthConfig.builder()
.clientId("你的client id")
.clientSecret("你的client secret")
.redirectUri("你的回調(diào)地址")
.build());
}
return authQqRequest;
}
public static void main(String[] args) {
Vertx vertx = Vertx.vertx();
Router router = Router.router(vertx);
router.get("/comm/user/callback").blockingHandler(context -> {
HttpServerRequest req = context.request();
AuthCallback callback = new AuthCallback();
callback.setCode(req.getParam("code"););
callback.setState(req.getParam("state"));
AuthRequest authRequest = createAuthRequest();
AuthResponse auRes = authRequest.login(callback);
HttpServerResponse res = context.response();
res.putHeader("Content-Type","text/json;charset=utf-8");
res.end(JSONUtil.toJsonStr(auRes));
});
router.get("/login").blockingHandler(context -> {
String url = createAuthRequest().authorize(AuthStateUtils.createState());
HttpServerResponse res = context.response();
res.putHeader("location",url);
res.setStatusCode(302);
res.end();
});
HttpServer httpServer = vertx.createHttpServer();
httpServer.requestHandler(router::accept);
httpServer.listen(8886);
}
}
代碼很好理解,主要可以分為以下幾個(gè)步驟
構(gòu)建一個(gè)QQ登錄的工具類,**兩個(gè)路由當(dāng)我們?cè)L問/login的時(shí)候,生成登錄地址,并且重定向到登錄地址當(dāng)我們登錄之后,系統(tǒng)跳往回調(diào)地址,即/comm/user/callback,在這里我們獲取參數(shù)code和state封裝成AuthCallback對(duì)象,執(zhí)行登錄方法登錄成功后會(huì)返回用戶信息,格式如下:
登錄成功后返回的用戶信息
需要注意的是:創(chuàng)建AuthQqRequest對(duì)象的時(shí)候,必須是單例,也就是說,必須保證生成登錄地址的對(duì)象的執(zhí)行登錄方法的對(duì)象是同一個(gè)。
拓展知識(shí):
在線登錄qq
網(wǎng)頁(yè)版QQ登錄窗口:
網(wǎng)頁(yè)版QQ登錄的方法**作:
1、首先打開百度。
2、如圖,輸入網(wǎng)頁(yè)版qq的網(wǎng)址并點(diǎn)擊進(jìn)入。
3、手機(jī)登錄qq,用掃一掃,掃下方的二維碼。
4、在手機(jī)上點(diǎn)擊允許登錄**artQQ。
5、如題,網(wǎng)頁(yè)qq就會(huì)登錄成功。
本回答被網(wǎng)友采納
在線登錄qq
如果您在其它電腦登錄時(shí)正常,只在本地出現(xiàn)此種情況,可能與您本機(jī)的設(shè)置及網(wǎng)絡(luò)限制有關(guān),建議您先確保安裝的是我司的官方版本,然后再搜索并刪除您的QQ號(hào)碼文件夾(會(huì)丟失聊天記錄,請(qǐng)注意備份),然后按以下方法**作:1、在登錄頁(yè)面選擇設(shè)置—選擇登錄服務(wù)器,類型為UDP登錄;2、本機(jī)設(shè)置限制:可能您本機(jī)安裝了某些防火墻軟件,限制的條件太多導(dǎo)致的。建議您可以把防火墻設(shè)置成默認(rèn)值,或把它先進(jìn)行關(guān)閉;3、路由的設(shè)置限制:路由的種類和功能較多,可能當(dāng)中設(shè)置了些帶寬限制或協(xié)議限制,導(dǎo)致經(jīng)常掉線。建議您咨詢相關(guān)網(wǎng)絡(luò)管理員把路由設(shè)置放寬;4、網(wǎng)絡(luò)不穩(wěn)定導(dǎo)致,建議您可以檢查您的網(wǎng)卡是否亮燈,網(wǎng)絡(luò)連接是否正常 `
在線登錄qq
如果您在其它電腦登錄時(shí)正常,只在本地出現(xiàn)此種情況,可能與您本機(jī)的設(shè)置及網(wǎng)絡(luò)限制有關(guān),建議您先確保安裝的是我司的官方版本,然后再搜索并刪除您的QQ號(hào)碼文件夾(會(huì)丟失聊天記錄,請(qǐng)注意備份),然后按以下方法**作:1、在登錄頁(yè)面選擇設(shè)置—選擇登錄服務(wù)器,類型為UDP登錄;2、本機(jī)設(shè)置限制:可能您本機(jī)安裝了某些防火墻軟件,限制的條件太多導(dǎo)致的。建議您可以把防火墻設(shè)置成默認(rèn)值,或把它先進(jìn)行關(guān)閉;3、路由的設(shè)置限制:路由的種類和功能較多,可能當(dāng)中設(shè)置了些帶寬限制或協(xié)議限制,導(dǎo)致經(jīng)常掉線。建議您咨詢相關(guān)網(wǎng)絡(luò)管理員把路由設(shè)置放寬;4、網(wǎng)絡(luò)不穩(wěn)定導(dǎo)致,建議您可以檢查您的網(wǎng)卡是否亮燈,網(wǎng)絡(luò)連接是否正常 `
原創(chuàng)文章,作者:九賢互聯(lián)網(wǎng)實(shí)用分享網(wǎng)小編,如若轉(zhuǎn)載,請(qǐng)注明出處:http://www.uuuxu.com/20220921473393.html