WELIFE Docs Swagger Admin Web

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
Google 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

  1. API_KEY HomeFix VPS (docker exec baotienweb-api printenv API_KEY)
  2. Ghi SHARED_AUTH_* trên VPS WELIFE · sync API · container env OK
  3. Smoke: đăng ký HomeFix prod → login WELIFE prod PASS (2026-08-13)
  4. 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.