2.4 KiB
2.4 KiB
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_loginclient_type=public- redirect URI:
http://localhost:5243/auth/callback - post logout redirect URI:
http://localhost:5243/ - 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_api或platform_service client_type=confidential- scopes 至少包含
profile:basic.read profile:addresses.read
若 Member Center API 與 Web login 不同 origin,Member Center 需設定:
Auth__WebLoginUrl=<Member Center Web login URL>
Auth__AllowedLoginReturnUrlPrefixes=<Member Center API issuer/base URL>
Auth__CookieDomain=<shared cookie domain, production subdomain SSO only>
Development 的 Member Center cookie 允許 localhost HTTP redirect login;Stage/Production 仍必須使用 HTTPS。
Web CSP form-action 會允許上述 login return origin 與 web_login client redirect origins,避免 login form POST 後的 302 chain 被瀏覽器擋下。
第一批 Happy Path
測試站目前包含:
- Redirect login 拿 token
- Redirect logout 清除 Member Center Web session 並回到 TestSite
GET /user/profilePOST /user/profileGET /user/addressesPOST /user/addressesGET /user/subscriptionsPOST /user/subscriptions/{id}/unsubscribe
測試站只做 happy path,不取代完整自動化測試。