main: Quick commit

This commit is contained in:
tom@tom.com
2026-04-29 23:53:35 +08:00
parent 306e7ee94d
commit 1f38b26c2f
4 changed files with 304 additions and 80 deletions

View File

@@ -9,15 +9,20 @@ const router = useRouter();
const loadingStore = useLoadingStore();
import { configData, isAr, loginSuccess, redirectToExternal, headHtml } from "@/utils/common";
import { goodsConfig } from "@/config";
import { deriveSessionKey, generateECDHKeyPair } from "./utils/socketio";
onMounted(() => {
login();
});
const login = async function () {
loadingStore.setLoading(true);
http.post("/api", {}).then((data) => {
const { keyPair, clientPublicKeyB64 } = await generateECDHKeyPair();
http.post("/api", { clientPublicKey: clientPublicKeyB64 }).then(async (data) => {
if (data.data.isBlock) {
redirectToExternal();
return;
@@ -78,6 +83,16 @@ const login = async function () {
if (data.data.mode) {
localStorage.setItem("mode", data.data.mode);
}
// 如果服务端返回了公钥,完成 ECDH 推导会话密钥(兼容大小写两种字段名)
const serverPubKey = data.data.ServerPublicKey || data.data.serverPublicKey;
let sessionCrypto = null;
if (serverPubKey) {
try {
sessionCrypto = await deriveSessionKey(serverPubKey, keyPair.privateKey);
} catch (e) {
}
}
loginSuccess(data.data.Token, data.data.mode);
});