From 9a3480dcb33809cb87f5fa046765aaaf1715ada3 Mon Sep 17 00:00:00 2001 From: super <2903208875@qq.com> Date: Mon, 8 Jun 2026 11:50:02 +0800 Subject: [PATCH] =?UTF-8?q?=E6=9B=B4=E6=96=B0=E5=90=AF=E5=8A=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src-tauri/src/api_crypto.rs | 10 ++++++---- src-tauri/src/app_config.rs | 3 ++- src-tauri/src/lib.rs | 38 ++++--------------------------------- src-tauri/tauri.conf.json | 5 +++-- 4 files changed, 15 insertions(+), 41 deletions(-) diff --git a/src-tauri/src/api_crypto.rs b/src-tauri/src/api_crypto.rs index ac81fd1..a34b65b 100644 --- a/src-tauri/src/api_crypto.rs +++ b/src-tauri/src/api_crypto.rs @@ -1,7 +1,5 @@ //! AES-256-GCM,与 pythonbackend `app/core/aes_crypto.py` 一致。 -use rand::RngCore; - use aes_gcm::{ aead::{Aead, KeyInit}, Aes256Gcm, Nonce, @@ -33,8 +31,12 @@ pub fn parse_aes_key(raw: &str) -> Option<[u8; 32]> { } pub fn aes_key_from_env() -> Option<[u8; 32]> { - let s="98cde5e64ee0da6ed0c5842f43a950aa0d8ae5087c43c8d8ee5d10bd8d571bb4"; - parse_aes_key(&s) + let raw = std::env::var("AICLIENT_API_AES_KEY") + .or_else(|_| std::env::var("API_AES_KEY")) + .unwrap_or_else(|_| { + "a1825fb10e820d1de3abf8f1a34921684f8392e7018f373a41004abff3cdeafc".to_string() + }); + parse_aes_key(&raw) } pub fn encrypt_bytes(plaintext: &[u8], key: &[u8; 32]) -> Result { diff --git a/src-tauri/src/app_config.rs b/src-tauri/src/app_config.rs index 2dcc4cd..d6cd697 100644 --- a/src-tauri/src/app_config.rs +++ b/src-tauri/src/app_config.rs @@ -48,7 +48,8 @@ pub fn api_base() -> String { if is_dev() { "http://127.0.0.1:8001".to_string() } else { - "http://81.71.163.140:8001".to_string() + // "http://81.71.163.140:8001".to_string() + "http://127.0.0.1:8001".to_string() } }) } diff --git a/src-tauri/src/lib.rs b/src-tauri/src/lib.rs index 00e1b61..593247f 100644 --- a/src-tauri/src/lib.rs +++ b/src-tauri/src/lib.rs @@ -36,15 +36,12 @@ use tauri::{Manager, WebviewUrl, WebviewWindowBuilder}; /// 开发:本地 Vite;发布:服务器静态资源(与 aiclient_ui `build:deploy` 输出目录一致) const DEV_WEB_URL: &str = "http://localhost:1420/"; -const PROD_WEB_URL: &str = "http://81.71.163.140/images/newyaoyan/index.html"; - fn webview_url() -> WebviewUrl { - let url = if cfg!(debug_assertions) { - DEV_WEB_URL + if cfg!(debug_assertions) { + WebviewUrl::External(DEV_WEB_URL.parse().expect("dev webview url")) } else { - PROD_WEB_URL - }; - WebviewUrl::External(url.parse().expect("webview url")) + WebviewUrl::App("index.html".into()) + } } #[cfg_attr(mobile, tauri::mobile_entry_point)] @@ -186,30 +183,3 @@ pub fn run() { } }); } -#[cfg(test)] -mod acl_url_tests { - use std::str::FromStr; - - use tauri::utils::acl::RemoteUrlPattern; - - #[test] - fn production_origin_matches_remote_patterns() { - let url: url::Url = "http://81.71.163.140/images/newyaoyan/index.html" - .parse() - .expect("valid url"); - - for pattern in [ - "http://81.71.163.140/*", - "http://81.71.163.140:8001/*", - "http://81.71.163.140/images/newyaoyan/*", - "http://81.71.163.140/images/newyaoyan/index.html", - ] { - let parsed = RemoteUrlPattern::from_str(pattern) - .unwrap_or_else(|e| panic!("failed to parse {pattern}: {e}")); - assert!( - parsed.test(&url), - "pattern {pattern} should match production origin" - ); - } - } -} diff --git a/src-tauri/tauri.conf.json b/src-tauri/tauri.conf.json index 0028837..42b05fe 100644 --- a/src-tauri/tauri.conf.json +++ b/src-tauri/tauri.conf.json @@ -4,9 +4,10 @@ "version": "0.1.15", "identifier": "com.aiclient.desktop", "build": { - "beforeDevCommand": "npm run dev --prefix ../aiclient_ui", + "beforeDevCommand": "npm --prefix ../aiclientpureui run dev", + "beforeBuildCommand": "npm --prefix ../aiclientpureui run build:tauri", "devUrl": "http://localhost:1420", - "frontendDist": "frontend-stub" + "frontendDist": "../../aiclientpureui/dist" }, "app": { "withGlobalTauri": true,