feat: 重构环境配置与 API 处理逻辑

更新 .env.example,补充玩家端本地开发配置说明,并新增直连 Laravel 服务及局域网访问相关配置选项。
重构 middleware.ts:使用新的 API 请求路径构建方法,提升代码清晰度与可维护性。
移除 next.config.ts 中已弃用的 API_BASE_URL 配置,简化 API 请求处理流程。
调整 lottery-http 以适配新的 API 基础地址解析机制,提升代码维护性。
优化 CSP(内容安全策略)配置,精简连接来源白名单管理,进一步增强安全性。
This commit is contained in:
2026-05-29 11:48:33 +08:00
parent 03faed1db6
commit 55bd56116d
11 changed files with 138 additions and 56 deletions

View File

@@ -1,36 +1,28 @@
# =============================================================================
# 玩家端本地配置示例:复制为 .env.local 后按需修改
# =============================================================================
# 三端联调速查见 lotteryadmin/.env.example本端默认端口 3800。
# -----------------------------------------------------------------------------
# Laravel APINext rewrites/api/* → ${API_BASE_URL}/api/*
# Laravel API
# - 浏览器始终请求同源 /api/v1
# - 宝塔线上负责把 /api/* 转发到 Laravel
# - 本地 npm run dev 时Next 临时把 /api/* 代理到 LOTTERY_API_UPSTREAM
# -----------------------------------------------------------------------------
# 手动切换环境:保留一个生效,另一个注释掉
# 测试
API_BASE_URL=http://127.0.0.1:8000
# 线上
# API_BASE_URL=https://api.your-production-domain.com
# 可选:直连 Laravel不经 Next 反代)
# NEXT_PUBLIC_LOTTERY_API_BASE_URL=http://127.0.0.1:8000
# NEXT_PUBLIC_LOTTERY_API_PROXY_DISABLED=true
# 本地 Laravel
LOTTERY_API_UPSTREAM=http://127.0.0.1:8000
# 本地前端连线上 API开发代理无需改线上 CORS
# LOTTERY_API_UPSTREAM=https://lotterylaravel.tanumo.com
# Next 开发:局域网 IP 访问(逗号分隔 host无协议
# ALLOWED_DEV_ORIGINS=192.168.0.101
# 可选:大厅「玩法与赔率」接口 `/api/v1/play/effective` 的 ?currency=(如 NPR不设则由后端选默认可下注币种。
# 可选:大厅 play/effective 的 ?currency=
# NEXT_PUBLIC_LOTTERY_PLAY_CURRENCY=NPR
# 可选:入口授权失败时返回主站重新进入”的地址。
# 可选:入口授权失败时返回主站
# NEXT_PUBLIC_MAIN_SITE_URL=http://localhost:5173
# -----------------------------------------------------------------------------
# Laravel ReverbWebSocket。不配则 Echo 为空,会一直显示「降级模式 / 轮询」。
# 须与 lotterLaravel .env 的 REVERB_APP_KEY / REVERB_HOST / REVERB_PORT / REVERB_SCHEME 一致。
# Laravel 终端另开:`php artisan reverb:start`
# -----------------------------------------------------------------------------
# Reverb本地全栈联调时取消注释并 php artisan reverb:start不配则走轮询
# NEXT_PUBLIC_REVERB_APP_KEY=
# NEXT_PUBLIC_REVERB_HOST=127.0.0.1
# NEXT_PUBLIC_REVERB_PORT=8080