From 3b3604073d9623917dcf47a1adaf337b394b6dcd Mon Sep 17 00:00:00 2001 From: tangweijie <877588133@qq.com> Date: Thu, 22 Jan 2026 21:09:41 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20=E7=99=BB=E5=BD=95=E9=A1=B5=E9=9D=A2?= =?UTF-8?q?=E4=BC=98=E5=8C=96=E5=8F=8ADocker=E9=85=8D=E7=BD=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 优化登录表单默认密码填充逻辑 - 修复社交登录回调处理 - 新增Docker Nginx配置 --- .env | 4 +- .env.prod | 9 +- .env.prod.bak | 34 +++++++ docker/frontend/nginx.conf | 117 +++++++++++++++++++++++ src/views/Login/SocialLogin.vue | 4 +- src/views/Login/components/LoginForm.vue | 4 +- 6 files changed, 164 insertions(+), 8 deletions(-) create mode 100644 .env.prod.bak create mode 100644 docker/frontend/nginx.conf diff --git a/.env b/.env index b958619d..8b79ed05 100644 --- a/.env +++ b/.env @@ -21,8 +21,8 @@ VITE_APP_BAIDU_CODE = a1ff8825baa73c3a78eb96aa40325abc # 默认账户密码 VITE_APP_DEFAULT_LOGIN_TENANT = 芋道源码 -VITE_APP_DEFAULT_LOGIN_USERNAME = admin -VITE_APP_DEFAULT_LOGIN_PASSWORD = admin123 +# VITE_APP_DEFAULT_LOGIN_USERNAME = admin +# VITE_APP_DEFAULT_LOGIN_PASSWORD = admin123 # API 加解密 VITE_APP_API_ENCRYPT_ENABLE = true diff --git a/.env.prod b/.env.prod index ca7cb8e4..a2ffda9d 100644 --- a/.env.prod +++ b/.env.prod @@ -4,7 +4,7 @@ NODE_ENV=production VITE_DEV=false # 请求路径 -VITE_BASE_URL='http://localhost:48080' +VITE_BASE_URL='' # 文件上传类型:server - 后端上传, client - 前端直连上传,仅支持S3服务 VITE_UPLOAD_TYPE=server @@ -31,4 +31,9 @@ VITE_OUT_DIR=dist-prod VITE_MALL_H5_DOMAIN='http://mall.yudao.iocoder.cn' # GoView域名 -VITE_GOVIEW_URL='http://127.0.0.1:3000' \ No newline at end of file +VITE_GOVIEW_URL='http://127.0.0.1:3000' + +VITE_APP_CAPTCHA_ENABLE=true + +VITE_APP_DEFAULT_LOGIN_PASSWORD='' +VITE_APP_DEFAULT_LOGIN_USERNAME='' diff --git a/.env.prod.bak b/.env.prod.bak new file mode 100644 index 00000000..c4ca8980 --- /dev/null +++ b/.env.prod.bak @@ -0,0 +1,34 @@ +# 生产环境:只在打包时使用 +NODE_ENV=production + +VITE_DEV=false + +# 请求路径 +VITE_BASE_URL='' + +# 文件上传类型:server - 后端上传, client - 前端直连上传,仅支持S3服务 +VITE_UPLOAD_TYPE=server + +# 接口地址 +VITE_API_URL=/admin-api + +# 是否删除debugger +VITE_DROP_DEBUGGER=true + +# 是否删除console.log +VITE_DROP_CONSOLE=true + +# 是否sourcemap +VITE_SOURCEMAP=false + +# 打包路径 +VITE_BASE_PATH=/ + +# 输出路径 +VITE_OUT_DIR=dist-prod + +# 商城H5会员端域名 +VITE_MALL_H5_DOMAIN='http://mall.yudao.iocoder.cn' + +# GoView域名 +VITE_GOVIEW_URL='http://127.0.0.1:3000' \ No newline at end of file diff --git a/docker/frontend/nginx.conf b/docker/frontend/nginx.conf new file mode 100644 index 00000000..cc40d784 --- /dev/null +++ b/docker/frontend/nginx.conf @@ -0,0 +1,117 @@ +worker_processes auto; +error_log /var/log/nginx/error.log warn; +pid /var/run/nginx.pid; + +events { + worker_connections 1024; + use epoll; + multi_accept on; +} + +http { + include /etc/nginx/mime.types; + default_type application/octet-stream; + + # 日志格式 + log_format main '$remote_addr - $remote_user [$time_local] "$request" ' + '$status $body_bytes_sent "$http_referer" ' + '"$http_user_agent" "$http_x_forwarded_for" ' + 'rt=$request_time uct="$upstream_connect_time" uht="$upstream_header_time" urt="$upstream_response_time"'; + + access_log /var/log/nginx/access.log main; + + # 性能优化 + sendfile on; + tcp_nopush on; + tcp_nodelay on; + keepalive_timeout 65; + types_hash_max_size 2048; + server_tokens off; + + # Gzip 压缩 + gzip on; + gzip_vary on; + gzip_proxied any; + gzip_comp_level 6; + gzip_min_length 1024; + gzip_types text/plain text/css text/xml application/json application/javascript application/rss+xml application/atom+xml image/svg+xml; + + # 缓冲区大小 + client_body_buffer_size 16k; + client_max_body_size 100m; + proxy_buffer_size 128k; + proxy_buffers 4 256k; + proxy_busy_buffers_size 128k; + + # 上游服务器配置 + upstream backend { + server backend:48080; + keepalive 32; + } + + server { + listen 80; + server_name _; + root /usr/share/nginx/html; + index index.html; + + # 安全头 + add_header X-Frame-Options "SAMEORIGIN" always; + add_header X-Content-Type-Options "nosniff" always; + add_header X-XSS-Protection "1; mode=block" always; + + # 前端静态资源缓存 + location ~* \.(js|css|png|jpg|jpeg|gif|ico|svg|woff|woff2|ttf|eot|map|json)$ { + expires 30d; + add_header Cache-Control "public, immutable"; + access_log off; + } + + # 前端路由支持 + location / { + try_files $uri $uri/ /index.html; + } + + # 后端 API 代理 + location /prod-api/ { + proxy_pass http://backend; + proxy_http_version 1.1; + proxy_set_header Host $host; + proxy_set_header X-Real-IP $remote_addr; + proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; + proxy_set_header X-Forwarded-Proto $scheme; + proxy_set_header X-Forwarded-Host $host; + proxy_set_header X-Forwarded-Port $server_port; + + # 连接超时 + proxy_connect_timeout 60s; + proxy_send_timeout 60s; + proxy_read_timeout 60s; + + # WebSocket 支持 + proxy_set_header Upgrade $http_upgrade; + proxy_set_header Connection "upgrade"; + + # 缓冲设置 + proxy_buffering on; + proxy_buffer_size 4k; + proxy_buffers 8 4k; + } + + # 静态资源目录 + location /static/ { + alias /usr/share/nginx/html/static/; + expires 30d; + add_header Cache-Control "public"; + } + + # 上传文件大小限制 + client_max_body_size 100m; + + # 错误页面 + error_page 500 502 503 504 /50x.html; + location = /50x.html { + root /usr/share/nginx/html; + } + } +} diff --git a/src/views/Login/SocialLogin.vue b/src/views/Login/SocialLogin.vue index 961f4ddb..499fb1ff 100644 --- a/src/views/Login/SocialLogin.vue +++ b/src/views/Login/SocialLogin.vue @@ -200,8 +200,8 @@ const loginData = reactive({ tenantEnable: import.meta.env.VITE_APP_TENANT_ENABLE !== 'false', loginForm: { tenantName: '芋道源码', - username: 'admin', - password: 'admin123', + username: '', + password: '', captchaVerification: '', rememberMe: false } diff --git a/src/views/Login/components/LoginForm.vue b/src/views/Login/components/LoginForm.vue index 1f8b82a2..ba70b422 100644 --- a/src/views/Login/components/LoginForm.vue +++ b/src/views/Login/components/LoginForm.vue @@ -196,8 +196,8 @@ const loginData = reactive({ tenantEnable: 'false', // 默认禁用租户选择 loginForm: { tenantName: '1', // 默认租户ID为1 - username: import.meta.env.VITE_APP_DEFAULT_LOGIN_USERNAME || '', - password: import.meta.env.VITE_APP_DEFAULT_LOGIN_PASSWORD || '', + username: '', + password: '', captchaVerification: '', rememberMe: true // 默认记住密码 }