member_center/docs/TEST_SITE.md
2026-07-07 13:27:49 +09:00

2.2 KiB
Raw Blame History

Member Center Test Site

src/MemberCenter.TestSite 是手動 happy-path 測試用網站,用來先驗證外部網站整合會員中心的最小流程。

啟動

dotnet run --project src/MemberCenter.TestSite

預設 HTTP URL

http://localhost:5243

必要設定

src/MemberCenter.TestSite/appsettings.Development.json 或環境變數設定:

{
  "MemberCenter": {
    "ApiBaseUrl": "http://localhost:7850",
    "WebBaseUrl": "http://localhost:5080",
    "WebLoginClientId": "<web_login client id>",
    "ServiceClientId": "<service client id>",
    "ServiceClientSecret": ""
  }
}

不要將 OAuth client secret 寫入或提交到 appsettings.json。建議使用環境變數 MemberCenter__ServiceClientSecret,或僅在測試表單暫時輸入;設定於 server-side 的 secret 不會回填至 HTML。

Repo 曾包含的 TestSite service client secret 必須在對應環境撤銷rotate只從 Git 移除不會使舊 secret 失效。

web_login OAuth client

  • usage=web_login
  • client_type=public
  • redirect URI: http://localhost:5243/auth/callback
  • scopes: openid email profile profile:basic.read profile:basic.write profile:addresses.read profile:addresses.write profile:subscriptions.read profile:subscriptions.write

service OAuth client

  • 建議使用 tenant_apiplatform_service
  • client_type=confidential
  • scopes 至少包含 profile:basic.read profile:addresses.read

若 Member Center API 與 Web login 不同 originMember Center 需設定:

Auth__WebLoginUrl=<Member Center Web login URL>
Auth__AllowedLoginReturnUrlPrefixes=<Member Center API issuer/base URL>
Auth__AllowedLogoutReturnUrlPrefixes=http://localhost:5243/
Auth__CookieDomain=<shared cookie domain, production subdomain SSO only>

第一批 Happy Path

測試站目前包含:

  1. Redirect login 拿 token
  2. Redirect logout 清除 Member Center Web session 並回到 TestSite
  3. GET /user/profile
  4. POST /user/profile
  5. GET /user/addresses
  6. POST /user/addresses
  7. GET /user/subscriptions
  8. POST /user/subscriptions/{id}/unsubscribe

測試站只做 happy path不取代完整自動化測試。