# ADR-0008 — Go 为唯一用户后台,咨询域过渡反代 - Status: Accepted - Date: 2026-09-14 - Tags: identity, miniprogram, consult, gateway ## Context 愈心谷 C 端同时打两套后台:咨询/测评在 Java + MySQL,愈心魔方在 Go + PostgreSQL。 `wx.login` 的 `code` 只能用一次,无法先后换两套 token。小程序需要单一身份与单一请求入口。 ## Decision 1. **Go + PostgreSQL 是唯一用户身份源。** 微信 openid / 手机号写在 `users`。 2. **Java 过渡期为被调方**:Go 用 openid/phone 调内网 `issue-mini-app` 换 Java Redis token,并反代 `/app-api`、`/admin-api`。 3. **咨询业务表本 ADR 不迁**;支付与档期另开 ECR。 4. **Admin 登录独立**,不走本决策。 ## Consequences - 小程序只配置 Go 域名(现网经 `/psy/api/` 反代)。 - 下线 Java 必须另开 ECR,并先迁支付。 - 历史魔方账密用户按手机号合并到 `wx_openid`。 ## Alternatives considered - 只做 SSO、双库长期并存:否决(用户要求合库合服务)。 - 以 Java 吸收魔方:否决(栈已锁定 Go + PG)。 - 客户端双 token:否决(code 单次使用,且拖住前端统一接入)。