mirror of
https://github.com/NapNeko/NapCatQQ.git
synced 2026-01-16 05:10:34 +00:00
feat: Login HeartBeat
This commit is contained in:
parent
cd1bd3461f
commit
790c4f589d
@ -1,7 +1,8 @@
|
|||||||
import { Router } from 'express';
|
import { Router } from 'express';
|
||||||
import { QQCheckLoginStatusHandler, QQGetQuickLoginListHandler } from '../api/QQLogin';
|
import { QQCheckLoginStatusHandler, QQGetQRcodeHandler, QQGetQuickLoginListHandler } from '../api/QQLogin';
|
||||||
|
|
||||||
const router = Router();
|
const router = Router();
|
||||||
router.all('/GetQuickLoginList', QQGetQuickLoginListHandler)
|
router.all('/GetQuickLoginList', QQGetQuickLoginListHandler)
|
||||||
router.post('/CheckLoginStatus', QQCheckLoginStatusHandler);
|
router.post('/CheckLoginStatus', QQCheckLoginStatusHandler);
|
||||||
|
router.post('/GetQQLoginQrcode', QQGetQRcodeHandler);
|
||||||
export { router as QQLoginRouter };
|
export { router as QQLoginRouter };
|
||||||
@ -158,7 +158,26 @@
|
|||||||
<p id="message"></p>
|
<p id="message"></p>
|
||||||
</div>
|
</div>
|
||||||
<script>
|
<script>
|
||||||
|
async function GetQQLoginQrcode(retCredential) {
|
||||||
|
let QQLoginResponse = await fetch('/api/QQLogin/GetQQLoginQrcode', {
|
||||||
|
method: 'POST',
|
||||||
|
headers: {
|
||||||
|
'Authorization': "Bearer " + retCredential,
|
||||||
|
'Content-Type': 'application/json'
|
||||||
|
}
|
||||||
|
});
|
||||||
|
if (QQLoginResponse.status == 200) {
|
||||||
|
let QQLoginResponseJson = await QQLoginResponse.json();
|
||||||
|
if (QQLoginResponseJson.code == 0) {
|
||||||
|
if (QQLoginResponseJson.data.qrcode) {
|
||||||
|
return QQLoginResponseJson.data.qrcode;
|
||||||
|
} else {
|
||||||
|
return "";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return "";
|
||||||
|
}
|
||||||
async function CheckQQLoginStatus(retCredential) {
|
async function CheckQQLoginStatus(retCredential) {
|
||||||
let QQLoginResponse = await fetch('/api/QQLogin/CheckLoginStatus', {
|
let QQLoginResponse = await fetch('/api/QQLogin/CheckLoginStatus', {
|
||||||
method: 'POST',
|
method: 'POST',
|
||||||
@ -195,6 +214,13 @@
|
|||||||
}
|
}
|
||||||
return [];
|
return [];
|
||||||
}
|
}
|
||||||
|
//心跳轮询CheckQQLoginStatus 是否已经进入登录状态,如果为true进入./config.html
|
||||||
|
async function HeartBeat() {
|
||||||
|
let isLogined = await CheckQQLoginStatus(localStorage.getItem('auth'));
|
||||||
|
if (isLogined) {
|
||||||
|
window.location.href = './config.html';
|
||||||
|
}
|
||||||
|
}
|
||||||
async function InitPages() {
|
async function InitPages() {
|
||||||
let QuickLists = await GetQQQucickLoginList(localStorage.getItem('auth'));
|
let QuickLists = await GetQQQucickLoginList(localStorage.getItem('auth'));
|
||||||
let QuickListSelect = document.querySelector("#quick-login-select");
|
let QuickListSelect = document.querySelector("#quick-login-select");
|
||||||
@ -204,6 +230,8 @@
|
|||||||
optionUinEle.value = QuickUin;
|
optionUinEle.value = QuickUin;
|
||||||
QuickListSelect.appendChild(optionUinEle);
|
QuickListSelect.appendChild(optionUinEle);
|
||||||
});
|
});
|
||||||
|
generateQrCode(await GetQQLoginQrcode(), document.querySelector('#qrcode-canvas'));
|
||||||
|
setTimeout(HeartBeat, 3000);
|
||||||
}
|
}
|
||||||
document.getElementById('quick-login').addEventListener('click', function () {
|
document.getElementById('quick-login').addEventListener('click', function () {
|
||||||
let quickLoginOptions = document.querySelector('#quick-login-dropdown');
|
let quickLoginOptions = document.querySelector('#quick-login-dropdown');
|
||||||
@ -214,7 +242,6 @@
|
|||||||
|
|
||||||
function selectAccount(accountName) {
|
function selectAccount(accountName) {
|
||||||
alert(`Logging in with ${accountName}...`);
|
alert(`Logging in with ${accountName}...`);
|
||||||
// Implement your login logic here
|
|
||||||
document.getElementById('quick-login-options').classList.remove('show');
|
document.getElementById('quick-login-options').classList.remove('show');
|
||||||
}
|
}
|
||||||
document.getElementById('qrcode-login').addEventListener('click', function () {
|
document.getElementById('qrcode-login').addEventListener('click', function () {
|
||||||
@ -222,8 +249,6 @@
|
|||||||
let qrcode = document.querySelector('#qrcode');
|
let qrcode = document.querySelector('#qrcode');
|
||||||
loginForm.style.display = 'none';
|
loginForm.style.display = 'none';
|
||||||
qrcode.style.display = 'flex';
|
qrcode.style.display = 'flex';
|
||||||
let qrData = 'https://yourapp.com/login?code=123456';
|
|
||||||
generateQrCode(qrData, document.querySelector('#qrcode-canvas'));
|
|
||||||
});
|
});
|
||||||
|
|
||||||
function generateQrCode(data, canvas) {
|
function generateQrCode(data, canvas) {
|
||||||
|
|||||||
@ -109,7 +109,7 @@
|
|||||||
if (QQLoginResponse.status == 200) {
|
if (QQLoginResponse.status == 200) {
|
||||||
let QQLoginResponseJson = await QQLoginResponse.json();
|
let QQLoginResponseJson = await QQLoginResponse.json();
|
||||||
if (QQLoginResponseJson.code == 0) {
|
if (QQLoginResponseJson.code == 0) {
|
||||||
alert(QQLoginResponseJson.data.isLogin.toString());
|
//alert(QQLoginResponseJson.data.isLogin.toString());
|
||||||
if (QQLoginResponseJson.data.isLogin) {
|
if (QQLoginResponseJson.data.isLogin) {
|
||||||
window.location.href = './config.html';
|
window.location.href = './config.html';
|
||||||
} else {
|
} else {
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user