156 lines
6.8 KiB
Plaintext
156 lines
6.8 KiB
Plaintext
# ── Database ──
|
||
DB_HOST=localhost
|
||
DB_PORT=5432
|
||
DB_USERNAME=genex
|
||
DB_PASSWORD=genex_dev_password
|
||
DB_NAME=genex
|
||
|
||
# ── Redis ──
|
||
REDIS_HOST=localhost
|
||
REDIS_PORT=6379
|
||
|
||
# ── JWT ──
|
||
JWT_ACCESS_SECRET=dev-access-secret-change-in-production
|
||
JWT_ACCESS_EXPIRY=24h
|
||
JWT_REFRESH_SECRET=dev-refresh-secret-change-in-production
|
||
JWT_REFRESH_EXPIRY=7d
|
||
|
||
# ── SMS ──
|
||
SMS_ENABLED=false
|
||
SMS_CODE_EXPIRE_SECONDS=300
|
||
SMS_DAILY_LIMIT=10
|
||
SMS_MAX_VERIFY_ATTEMPTS=5
|
||
|
||
# ── Aliyun SMS (only when SMS_ENABLED=true) ──
|
||
# ALIYUN_ACCESS_KEY_ID=
|
||
# ALIYUN_ACCESS_KEY_SECRET=
|
||
# ALIYUN_SMS_SIGN_NAME=券金融
|
||
# ALIYUN_SMS_TEMPLATE_CODE=SMS_501745796
|
||
# ALIYUN_SMS_TPL_REGISTER=SMS_501745796
|
||
# ALIYUN_SMS_TPL_LOGIN=SMS_501720822
|
||
# ALIYUN_SMS_TPL_RESET_PASSWORD=SMS_501735781
|
||
# ALIYUN_SMS_TPL_CHANGE_PHONE=SMS_501925825
|
||
# ALIYUN_SMS_TPL_IDENTITY_VERIFY=SMS_501925825
|
||
# ALIYUN_SMS_TPL_TRANSACTION=SMS_501820752
|
||
# ALIYUN_SMS_TPL_PAYMENT=SMS_501855782
|
||
|
||
# ── Email (Gmail SMTP) ──
|
||
# EMAIL_ENABLED=true 时使用 Gmail 真实发送; false 时验证码打印到控制台
|
||
EMAIL_ENABLED=false
|
||
EMAIL_CODE_EXPIRE_SECONDS=300
|
||
EMAIL_DAILY_LIMIT=10
|
||
EMAIL_MAX_VERIFY_ATTEMPTS=5
|
||
|
||
# Gmail SMTP (only when EMAIL_ENABLED=true)
|
||
# 步骤:Google 账号 → 安全性 → 开启两步验证 → 应用专用密码 → 选「邮件」→ 复制16位密码
|
||
# GMAIL_USER=noreply@gmail.com
|
||
# GMAIL_APP_PASSWORD=xxxxxxxxxxxxxx (16位,填写时不含空格)
|
||
# EMAIL_FROM_NAME=Genex
|
||
|
||
# ── WeChat OAuth (微信开放平台移动应用) ──────────────────────────────────────
|
||
#
|
||
# 申请步骤(需企业资质,个人无法申请移动应用 OAuth):
|
||
#
|
||
# 1. 注册/登录微信开放平台
|
||
# https://open.weixin.qq.com
|
||
# → 账号中心 → 开发者资质认证(年费 300 元,需营业执照/组织机构代码证)
|
||
#
|
||
# 2. 创建移动应用
|
||
# 管理中心 → 移动应用 → 创建移动应用
|
||
# 填写基本信息:应用名称、简介、图标(512×512 PNG,无圆角)
|
||
# 填写平台信息:
|
||
# Android — 应用包名: cn.gogenex.consumer
|
||
# 应用签名: release keystore 的 MD5(32位小写,无冒号分隔)
|
||
# 获取签名: keytool -exportcert -keystore release.jks \
|
||
# -alias release -storepass <密码> | md5sum
|
||
# iOS — Bundle ID: cn.gogenex.consumer
|
||
# 提交审核,等待 1-7 个工作日
|
||
#
|
||
# 3. 审核通过后在「应用详情」页面获取:
|
||
# AppID (16位,wx 开头) — 填入 WECHAT_APP_ID,客户端和服务端均需要
|
||
# AppSecret (32位) — 填入 WECHAT_APP_SECRET,仅服务端使用,严格保密
|
||
#
|
||
# 4. 启用 unionid(强烈建议)
|
||
# 开放平台 → 账号中心 → 公众号/小程序/移动应用 绑定到同一开放平台账号
|
||
# 绑定后,同一微信用户在所有绑定应用中 unionid 相同,可跨 App 识别用户
|
||
# 若不绑定,不同 App 下同一用户的 openid 不同,会注册出多个账号
|
||
#
|
||
# 5. Flutter 构建时传入 AppID(在 Android Studio / Xcode / CI 脚本中配置):
|
||
# flutter build apk --dart-define=WECHAT_APP_ID=wx0000000000000000
|
||
# flutter build ipa --dart-define=WECHAT_APP_ID=wx0000000000000000
|
||
#
|
||
# 注意事项:
|
||
# - AppSecret 严禁写入客户端代码或提交到 Git,只在服务端 .env 中配置
|
||
# - Android 发布正式版本时,签名 MD5 必须与申请时一致,否则微信授权失败
|
||
# - iOS Universal Links 需要在开放平台填写 https://www.gogenex.com/wechat/
|
||
# 并确保该 URL 可访问 apple-app-site-association 文件
|
||
#
|
||
# WECHAT_APP_ID=wx0000000000000000
|
||
# WECHAT_APP_SECRET=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
|
||
|
||
# ── 支付宝 OAuth(移动应用) ─────────────────────────────────────────────────
|
||
#
|
||
# 申请步骤:
|
||
# 1. 登录支付宝开放平台 https://open.alipay.com
|
||
# → 控制台 → 创建应用 → 移动应用 → 填写 App 名称/图标/Bundle ID
|
||
#
|
||
# 2. 配置 RSA2 密钥对(SHA256WithRSA,推荐 2048 位)
|
||
# 下载「支付宝开放平台密钥工具」生成密钥对:
|
||
# https://opendocs.alipay.com/common/02kipl
|
||
# - 将「应用公钥」上传到支付宝开放平台
|
||
# - 将「应用私钥(PKCS8 格式)」填入 ALIPAY_PRIVATE_KEY(Base64,无换行)
|
||
# - 在开放平台获取「支付宝公钥」(非应用公钥),填入 ALIPAY_PUBLIC_KEY
|
||
#
|
||
# 3. 添加功能:获取会员信息(alipay.user.info.share)
|
||
# 应用详情 → 添加功能 → 获取会员信息 → 签约(约1个工作日审核)
|
||
#
|
||
# 4. 获取 AppID(16位数字,如 2021003189xxxxxx)
|
||
#
|
||
# ALIPAY_APP_ID=2021003189xxxxxx
|
||
# ALIPAY_PRIVATE_KEY=MIIEvAIBADANBgkqhkiG9w0BAQEFAASC...(PKCS8 Base64,无换行)
|
||
# ALIPAY_PUBLIC_KEY=MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMI...(支付宝公钥,无换行)
|
||
# ALIPAY_GATEWAY=openapi.alipay.com # 沙箱: openapi-sandbox.dl.alipaydev.com
|
||
|
||
# ── Google Sign-In ────────────────────────────────────────────────────────────
|
||
#
|
||
# 申请步骤:
|
||
# 1. 登录 Google Cloud Console https://console.cloud.google.com
|
||
# → 选择/创建项目
|
||
#
|
||
# 2. 启用 API
|
||
# API 和服务 → 库 → 搜索「Google Sign-In API」→ 启用
|
||
#
|
||
# 3. 创建 OAuth 2.0 凭据
|
||
# API 和服务 → 凭据 → 创建凭据 → OAuth 2.0 客户端 ID
|
||
# 分别创建:
|
||
# Android 类型: 包名 cn.gogenex.consumer + SHA-1 指纹(debug/release 各一)
|
||
# SHA-1 获取: keytool -exportcert -keystore debug.keystore \
|
||
# -alias androiddebugkey -storepass android | openssl sha1 -binary | xxd
|
||
# iOS 类型: Bundle ID cn.gogenex.consumer
|
||
#
|
||
# 4. 服务端获取一个「Web 应用」类型的 Client ID(可选,用于验证 aud 字段)
|
||
# 若不配置,GOOGLE_CLIENT_ID 可留空(跳过 aud 验证,安全性略降低)
|
||
#
|
||
# GOOGLE_CLIENT_ID=xxxxxxxxxx.apps.googleusercontent.com
|
||
|
||
# ── Apple Sign In ─────────────────────────────────────────────────────────────
|
||
#
|
||
# 申请步骤:
|
||
# 1. Apple Developer 账号(个人 $99/年)https://developer.apple.com
|
||
#
|
||
# 2. 开启 Sign In with Apple 能力
|
||
# Certificates, Identifiers & Profiles
|
||
# → Identifiers → 选择 App ID (cn.gogenex.consumer)
|
||
# → Capabilities → 勾选「Sign In with Apple」→ Save
|
||
#
|
||
# 3. iOS Xcode 配置
|
||
# Target → Signing & Capabilities → + Capability → Sign In with Apple
|
||
#
|
||
# APPLE_CLIENT_ID=cn.gogenex.consumer # 填 Bundle ID 即可
|
||
|
||
# ── Kafka (optional, events silently skipped if unavailable) ──
|
||
KAFKA_BROKERS=localhost:9092
|
||
|
||
# ── Service ──
|
||
PORT=3010
|