QrCodeService

This commit is contained in:
shimingxy
2024-09-02 15:19:20 +08:00
parent d8997bbadd
commit f172d46c3e
2 changed files with 31 additions and 30 deletions

View File

@@ -28,8 +28,8 @@ import { finalize } from 'rxjs/operators';
import { AuthnService } from '../../../service/authn.service';
import { ImageCaptchaService } from '../../../service/image-captcha.service';
import { QrCodeService } from '../../../service/qr-code.service';
import { SocialsProviderService } from '../../../service/socials-provider.service';
import {QrCodeService} from "../../../service/QrCode.service";
import { CONSTS } from '../../../shared/consts';
import { stringify } from 'querystring';
@@ -313,14 +313,15 @@ export class UserLoginComponent implements OnInit, OnDestroy {
this.qrexpire = false;
this.qrCodeService.getLoginQrCode().subscribe(res => {
if (res.code === 0 && res.data.rqCode) { // 使用返回的 rqCode
if (res.code === 0 && res.data.rqCode) {
// 使用返回的 rqCode
const qrImageElement = document.getElementById('div_qrcodelogin');
this.ticket = res.data.ticket;
if (qrImageElement) {
qrImageElement.innerHTML = `<img src="${res.data.rqCode}" alt="QR Code" style="width: 200px; height: 200px;">`;
}
/* // 设置5分钟后 qrexpire 为 false
/* // 设置5分钟后 qrexpire 为 false
setTimeout(() => {
this.qrexpire = true;
this.cdr.detectChanges(); // 更新视图
@@ -335,39 +336,39 @@ export class UserLoginComponent implements OnInit, OnDestroy {
*/
loginByQrCode() {
const interval = setInterval(() => {
this.qrCodeService.loginByQrCode({
authType: 'scancode',
code: this.ticket,
state: this.state,
}).subscribe(res => {
if (res.code === 0) {
this.qrexpire = true;
// 清空路由复用信息
this.reuseTabService.clear();
// 设置用户Token信息
this.authnService.auth(res.data);
this.authnService.navigate({});
} else if (res.code === 20004) {
this.qrexpire = true;
} else if (res.code === 20005) {
this.get()
}
this.qrCodeService
.loginByQrCode({
authType: 'scancode',
code: this.ticket,
state: this.state
})
.subscribe(res => {
if (res.code === 0) {
this.qrexpire = true;
// 清空路由复用信息
this.reuseTabService.clear();
// 设置用户Token信息
this.authnService.auth(res.data);
this.authnService.navigate({});
} else if (res.code === 20004) {
this.qrexpire = true;
} else if (res.code === 20005) {
this.get();
}
// Handle response here
// Handle response here
// If you need to stop the interval after a certain condition is met,
// you can clear the interval like this:
if (this.qrexpire) {
clearInterval(interval);
}
// If you need to stop the interval after a certain condition is met,
// you can clear the interval like this:
if (this.qrexpire) {
clearInterval(interval);
}
this.cdr.detectChanges(); // 更新视图
});
this.cdr.detectChanges(); // 更新视图
});
}, 5 * 1000); // 5 seconds
}
getQrCode(): void {
this.qrexpire = false;
if (this.interval$) {