From ea0072197dd8598fd8d7a8f7e796068b0069a142 Mon Sep 17 00:00:00 2001 From: kang Date: Fri, 29 May 2026 10:28:30 +0800 Subject: [PATCH] =?UTF-8?q?chore:=20=E6=9B=B4=E6=96=B0=20.env.example=20?= =?UTF-8?q?=E6=96=87=E4=BB=B6=EF=BC=8C=E7=AE=80=E5=8C=96=E9=85=8D=E7=BD=AE?= =?UTF-8?q?=E9=A1=B9=E5=B9=B6=E6=B7=BB=E5=8A=A0=20CORS=20=E7=9B=B8?= =?UTF-8?q?=E5=85=B3=E8=AE=BE=E7=BD=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 移除不再使用的配置项,建议通过后台管理进行设置。 - 新增 CORS_ALLOWED_ORIGINS、CORS_SUPPORTS_CREDENTIALS 和 CORS_MAX_AGE 选项,以支持跨域请求的灵活性与安全性。 --- .env.example | 214 +++------------------------------------------------ 1 file changed, 12 insertions(+), 202 deletions(-) diff --git a/.env.example b/.env.example index 361be08..821238e 100644 --- a/.env.example +++ b/.env.example @@ -1,252 +1,62 @@ -# ============================================================================= -# 应用核心(config/app.php) -# ============================================================================= +# cp .env.example .env && composer install && php artisan key:generate && php artisan migrate +# 生产常驻:queue:work、schedule:work、reverb:start(见 README) -# 应用显示名(邮件发件人名、日志等会引用) APP_NAME=Lottery -# 运行环境:local / staging / production(影响缓存、调试与安全策略) APP_ENV=local -# 应用密钥;留空时执行 php artisan key:generate 生成(勿提交真实值到 Git) APP_KEY= -# 是否输出详细错误页与堆栈(生产环境务必为 false) APP_DEBUG=true -# 应用根 URL(生成链接、邮件、部分驱动依赖;与 php artisan serve 端口一致时带上 :8000) APP_URL=http://localhost:8000 -# 开发服务监听地址:本机开发可保持 127.0.0.1;需要局域网访问时改为 0.0.0.0 APP_BIND_HOST=127.0.0.1 -# Vite 监听地址:本机开发可保持 127.0.0.1;需要局域网访问时改为 0.0.0.0 VITE_HOST=0.0.0.0 -# ============================================================================= -# 语言与假数据(config/app.php) -# ============================================================================= - -# PHP 应用默认语言代码 -APP_LOCALE=en -# 翻译缺失时的回退语言 -APP_FALLBACK_LOCALE=en -# Faker 造数用的区域(如 zh_CN、en_US) -APP_FAKER_LOCALE=en_US - -# ============================================================================= -# 维护模式(config/app.php) -# ============================================================================= - -# 维护模式驱动:file(写 storage/framework/down)或可使用其他存储 -APP_MAINTENANCE_DRIVER=file -# 使用 database 驱动维护状态时的存储配置(与 file 二选一场景下再取消注释) -# APP_MAINTENANCE_STORE=database - -# 内置 PHP 开发服务器 worker 数量(多核本机可酌情打开) -# PHP_CLI_SERVER_WORKERS=4 - -# ============================================================================= -# CORS(跨域;config/cors.php) -# ============================================================================= - -# 浏览器跨域访问 API 的来源白名单,逗号分隔(协议+域名+可选端口) -# 示例: -# CORS_ALLOWED_ORIGINS=https://admin.example.com,https://partner-a.com -CORS_ALLOWED_ORIGINS= -# 可选:来源正则模式(需要受控通配时再用) -# CORS_ALLOWED_ORIGINS_PATTERNS=^https://([a-z0-9-]+)\.partner\.example\.com$ -CORS_ALLOWED_ORIGINS_PATTERNS= -# 预检缓存秒数;0 表示不缓存 -CORS_MAX_AGE=0 -# 是否允许跨站 Cookie(仅在确实需要浏览器跨站会话时设 true) -CORS_SUPPORTS_CREDENTIALS=false - -# ============================================================================= -# 密码哈希(config/hashing.php) -# ============================================================================= - -# bcrypt 迭代轮数;越大越慢越安全,测试环境可略低 -BCRYPT_ROUNDS=12 - -# ============================================================================= -# 日志(config/logging.php) -# ============================================================================= - -# 默认日志通道名,对应下方 LOG_STACK 中的通道之一 -LOG_CHANNEL=stack -# stack 通道所包含的子通道,逗号分隔,如 single、daily -LOG_STACK=single -# 弃用警告单独输出到的通道;null 表示忽略 -LOG_DEPRECATIONS_CHANNEL=null -# 日志级别:debug / info / notice / warning / error / critical / alert / emergency LOG_LEVEL=debug -# ============================================================================= -# 数据库(config/database.php) -# ============================================================================= - -# 连接名:pgsql / mysql / sqlite 等 DB_CONNECTION=pgsql -# 数据库主机 DB_HOST=127.0.0.1 -# 数据库端口(PostgreSQL 默认 5432) DB_PORT=5432 -# 数据库名 DB_DATABASE=lottery -# 数据库用户名(示例留空,本机按实际填写) DB_USERNAME= -# 数据库密码(示例留空) DB_PASSWORD= -# 完整数据库 URL,若设置可覆盖上述分散配置(一般留空) -# DB_URL= -# ============================================================================= -# Session(config/session.php) -# ============================================================================= - -# 会话驱动:file / cookie / database / redis 等 SESSION_DRIVER=redis -# 会话存活时间(分钟) -SESSION_LIFETIME=120 -# 是否加密会话数据 -SESSION_ENCRYPT=false -# Cookie 路径,一般根路径 / -SESSION_PATH=/ -# Cookie 域;单域本地开发常用 null SESSION_DOMAIN=null -# ============================================================================= -# 广播与文件(config/broadcasting.php、config/filesystems.php) -# ============================================================================= - -# 广播驱动:null / log / reverb(大厅 WebSocket 快照推荐) / pusher 等 -# 使用 reverb 时另开终端:php artisan reverb:start(与 php artisan serve 并行) -# 大厅 draw.countdown 每秒需跑调度:php artisan schedule:work(或等同),勿仅用每分钟 cron BROADCAST_CONNECTION=reverb - -# Laravel Reverb(config/reverb.php);玩家端 Echo:NEXT_PUBLIC_REVERB_APP_KEY/HOST/PORT/SCHEME(与 REVERB_* 对齐) REVERB_APP_ID= REVERB_APP_KEY= REVERB_APP_SECRET= -# Reverb 服务监听地址:本机直连可用 127.0.0.1;需要局域网访问时改为 0.0.0.0 REVERB_SERVER_HOST=0.0.0.0 REVERB_HOST=localhost REVERB_PORT=8080 REVERB_SCHEME=http -# 默认文件存储盘:local / s3 等 -FILESYSTEM_DISK=local -# ============================================================================= -# 队列与缓存(config/queue.php、config/cache.php) -# ============================================================================= - -# 队列驱动:sync(同步)/ database / redis 等;本地常用 database QUEUE_CONNECTION=redis -# 缓存存储:file / database / redis 等;与 Redis 赔付池等能力对接前可用 database CACHE_STORE=redis -# 号码赔付池是否使用 Redis Lua 原子扣减;本地无 Redis Lua 需求时可 false LOTTERY_RISK_POOL_USE_REDIS_LUA=false -# 缓存键全局前缀;多环境共 Redis 时可用于隔离,一般可留空使用框架默认 -# CACHE_PREFIX= -# ============================================================================= -# Memcached(config/cache.php;未用可保持默认) -# ============================================================================= - -MEMCACHED_HOST=127.0.0.1 - -# ============================================================================= -# Redis(config/database.php 中 redis 连接) -# ============================================================================= - -# Redis 客户端扩展:phpredis / predis -REDIS_CLIENT=phpredis REDIS_HOST=127.0.0.1 -# Redis 密码;无认证填 null REDIS_PASSWORD=null REDIS_PORT=6379 -# 默认 Redis 逻辑库编号(与 session/queue 共用连接时注意规划) REDIS_DB=0 -# 专用于 cache 连接的逻辑库编号(config 中 default 与 cache 两套连接) REDIS_CACHE_DB=1 -# ============================================================================= -# 邮件(config/mail.php) -# ============================================================================= +# 逗号分隔,含协议。本地示例:http://localhost:3800,http://localhost:3801 +CORS_ALLOWED_ORIGINS= +CORS_SUPPORTS_CREDENTIALS=false +CORS_MAX_AGE=0 -# 邮件驱动:smtp / log(仅写日志)等 -MAIL_MAILER=log -# TLS 方案等(smtp+URL 时用;一般用框架默认) -MAIL_SCHEME=null -MAIL_HOST=127.0.0.1 -MAIL_PORT=2525 -MAIL_USERNAME=null -MAIL_PASSWORD=null -# 默认发件人邮箱 -MAIL_FROM_ADDRESS="hello@example.com" -# 默认发件显示名(可引用 APP_NAME) -MAIL_FROM_NAME="${APP_NAME}" - -# ============================================================================= -# AWS S3 等(config/filesystems.php;未用 S3 可留空) -# ============================================================================= - -# IAM 访问键 ID(仅在使用 S3/队列等 AWS 能力时必填) -AWS_ACCESS_KEY_ID= -# IAM Secret -AWS_SECRET_ACCESS_KEY= -AWS_DEFAULT_REGION=us-east-1 -AWS_BUCKET= -# 兼容 MinIO 等路径风格 Endpoint 时使用 true -AWS_USE_PATH_STYLE_ENDPOINT=false - -# ============================================================================= -# 前端 Vite(vite 构建时注入) -# ============================================================================= - -# 供前端读取的应用名,通常与 APP_NAME 一致 -VITE_APP_NAME="${APP_NAME}" - -# ============================================================================= -# 彩票业务(config/lottery.php、database/seeders;密钥仅写本机 .env) -# ============================================================================= - -# 运营项(默认币种、开奖间隔/窗口/封盘提前、预生成期数、金额格式)已迁移后台配置 lottery_settings, -# 建议在 /admin/settings 管理;此处不再提供对应 env 键。 -# lottery_settings 表读缓存 TTL(秒);调小更易立即看到后台改值,调大减库压 LOTTERY_SETTINGS_CACHE_TTL=60 -# 开发绕过:Authorization: Bearer dev:{players.id};仅当 APP_ENV 为 local 或 testing 且为 true 时生效(PHPUnit 依赖 testing),生产务必 false LOTTERY_PLAYER_AUTH_DEV_BYPASS=false - -# 校验主站 JWT 的算法(与签发方一致) -LOTTERY_JWT_ALGORITHM=HS256 -# JWT 内表示站点编码的 claim 名 -LOTTERY_JWT_CLAIM_SITE_CODE=site_code -# JWT 内表示主站玩家标识的 claim 名 -LOTTERY_JWT_CLAIM_SITE_PLAYER_ID=site_player_id -# JWT 允许的最长有效窗(秒):exp-iat 不得超过此值;默认 300(5 分钟) -LOTTERY_JWT_MAX_TTL_SECONDS=300 -# 是否要求 JWT 含 iat(建议 true,与短效 Token 策略一致) -LOTTERY_JWT_REQUIRE_IAT=true -# 可选:32 字节 AES 密钥再 Base64;用于 URL 传递的密文 Token 解包为内层 JWT -# LOTTERY_PLAYER_TOKEN_AES_KEY= - -# 管理端登录:Sanctum PAT 有效天数(签发时刻起),至少 1;到期需重新登录 ADMIN_API_TOKEN_TTL_DAYS=7 -# Legacy 主站兜底配置:正式接入站点以后台 admin_sites 为准;这里仅用于本地默认站/历史回退。 -# 主站站点根 URL(SSO、跳转等) -MAIN_SITE_BASE_URL= -# 主站 JWT 验签密钥(与主站约定,勿泄露) -MAIN_SITE_SSO_JWT_SECRET= -# 主站钱包接口基地址 -MAIN_SITE_WALLET_API_URL= -# 主站钱包接口访问密钥 -MAIN_SITE_WALLET_API_KEY= -# 主站钱包 HTTP 超时(秒) -MAIN_SITE_WALLET_TIMEOUT=10 +# 主站对接:生产请在后台「接入站点」(admin_sites) 维护;以下为可选 legacy 兜底,本地联调可填,生产可留空 +# MAIN_SITE_BASE_URL= +# MAIN_SITE_SSO_JWT_SECRET= +# MAIN_SITE_WALLET_API_URL= +# MAIN_SITE_WALLET_API_KEY= +# MAIN_SITE_WALLET_TIMEOUT=10 -# db:seed 演示玩家钱包:可用余额(最小货币单位,整数) DEV_SEED_WALLET_BALANCE_MINOR=125000 -# db:seed 演示玩家钱包:冻结余额(最小货币单位,整数) DEV_SEED_WALLET_FROZEN_MINOR=0 -# Sanctum SPA 场景:与 API 不同端口的前端域名列表,逗号分隔,用于有状态 Cookie 鉴权 -# 如果要走局域网访问,把真实 IP 和端口补进来,例如: -# SANCTUM_STATEFUL_DOMAINS=localhost,127.0.0.1,::1,192.168.0.101:3800,192.168.0.101:3801,192.168.0.101:8000 SANCTUM_STATEFUL_DOMAINS=