fix: 修复jtag边界扫描前后端的bug:无法开始停止,无法通过认证,后端崩溃

This commit is contained in:
2025-08-02 13:10:44 +08:00
parent e5f2be616c
commit cb229c2a30
5 changed files with 110 additions and 45 deletions

View File

@@ -15,7 +15,10 @@ import {
DebuggerClient,
ExamClient,
} from "@/APIClient";
import router from "@/router";
import { HubConnectionBuilder } from "@microsoft/signalr";
import axios, { type AxiosInstance } from "axios";
import { isNull } from "lodash";
// 支持的客户端类型联合类型
type SupportedClient =
@@ -117,7 +120,7 @@ export class AuthManager {
if (!token) return null;
const instance = axios.create();
instance.interceptors.request.use(config => {
instance.interceptors.request.use((config) => {
config.headers = config.headers || {};
(config.headers as any)["Authorization"] = `Bearer ${token}`;
return config;
@@ -183,11 +186,11 @@ export class AuthManager {
public static createAuthenticatedNetConfigClient(): NetConfigClient {
return AuthManager.createAuthenticatedClient(NetConfigClient);
}
public static createAuthenticatedOscilloscopeApiClient(): OscilloscopeApiClient {
return AuthManager.createAuthenticatedClient(OscilloscopeApiClient);
}
public static createAuthenticatedDebuggerClient(): DebuggerClient {
return AuthManager.createAuthenticatedClient(DebuggerClient);
}
@@ -196,6 +199,21 @@ export class AuthManager {
return AuthManager.createAuthenticatedClient(ExamClient);
}
public static createAuthenticatedJtagHubConnection() {
const token = this.getToken();
if (isNull(token)) {
router.push("/login");
throw Error("Token Null!");
}
return new HubConnectionBuilder()
.withUrl("http://127.0.0.1:5000/hubs/JtagHub", {
accessTokenFactory: () => token,
})
.withAutomaticReconnect()
.build();
}
// 登录函数
public static async login(
username: string,