WP-AUTH-SHARED-01 — Shared login WELIFE VPS ↔ HomeFix VPS
| Field | Value |
|---|---|
| Domain | D-AUTH |
| Surfaces | CON · API |
| Status | IMP (code) · OWNER SHARED_AUTH_API_KEY = API_KEY trên VPS HomeFix |
| Date | 2026-08-13 |
Goal
Người dùng đăng ký một lần (Design Build hoặc WELIFE) → đăng nhập được app kia mà không đăng ký lại.
Nguồn user chung = Nest HomeFix trên VPS (https://api.homefix.asia).
Firebase FCM / Analytics / appId vẫn riêng từng app.
Architecture (VPS ↔ VPS)
App Design Build ──► https://api.homefix.asia (Postgres users SSOT)
App WELIFE ──► https://api.minhtien.cloud
│
└─ SHARED_AUTH_* ──► api.homefix.asia /auth/login|register|google
(header X-API-Key = HomeFix API_KEY)
└─ Firebase welife-2412 riêng (không dùng làm SSOT user)
Không cần 2 Nest trên PC. Mobile production trỏ API VPS tương ứng.
Env trên VPS WELIFE (/opt/welife/api/.env hoặc compose env)
SHARED_AUTH_ENABLED=1
SHARED_AUTH_BASE_URL=https://api.homefix.asia/api/v1
SHARED_AUTH_API_KEY=<API_KEY đúng trên VPS HomeFix>
SHARED_AUTH_STRICT=0
Lấy API_KEY từ VPS HomeFix
# SSH vào server HomeFix / baotienweb
grep '^API_KEY=' /path/to/BE/.env # hoặc docker exec … printenv API_KEY
Copy giá trị đó sang VPS WELIFE → SHARED_AUTH_API_KEY → restart container/API WELIFE.
Kiểm tra cầu nối từ VPS WELIFE
curl -sS -m 10 -H "X-API-Key: $SHARED_AUTH_API_KEY" \
-H 'Content-Type: application/json' \
-d '{"identifier":"no-such-user@example.com","password":"WrongPass99xx"}' \
https://api.homefix.asia/api/v1/auth/login
# Kỳ vọng 401 credentials / validation — KHÔNG phải "API key không hợp lệ"
Behaviour
| Action WELIFE | Shared ON |
|---|---|
| Register | Đẩy user sang HomeFix VPS (best-effort) + OTP WELIFE |
| Login | Hỏi HomeFix VPS trước → link user + JWT WELIFE |
| Sync HomeFix rồi JWT WELIFE |
Mobile
| App | API |
|---|---|
| Design Build | https://api.homefix.asia/api/v1 |
| WELIFE | https://api.minhtien.cloud/api/v1 |
OWNER checklist
-
API_KEYHomeFix VPS (docker exec baotienweb-api printenv API_KEY) - Ghi
SHARED_AUTH_*trên VPS WELIFE · sync API · container env OK - Smoke: đăng ký HomeFix prod → login WELIFE prod PASS (2026-08-13)
- Smoke chiều ngược (đăng ký WELIFE → login Design Build) trên app thật
Fix đã deploy
HomeFix response envelope { success, data } — SharedAuthClient.unwrapData() (tránh 500 user.email).
Local PC (tuỳ chọn, không phải mục tiêu chính)
Chỉ khi debug: HomeFix :3001 + SHARED_AUTH_BASE_URL=http://127.0.0.1:3001/api/v1.